private fun showOrhide(//收缩部分        linearLayout: LinearLayout,        //旋转箭头        taskDetailArrow: RelativeLayout    ) {        val scrollView = binding.scrollView        val rect = Rect()        linearLayout.getGlobalVisibleRect(rect)        val arrow = taskDetailArrow.getChildAt(1)        if (linearLayout.visibility == View.VISIBLE) {            arrow.rotation = 180f            ObjectAnimator.ofFloat(                linearLayout,                "translationY",                0.0f, -linearLayout.measuredHeight.toFloat()            ).apply {                duration = 500                interpolator = AccelerateInterpolator()                start()            }.addListener(object : Animator.AnimatorListener {                override fun onAnimationRepeat(animation: Animator?) {                }                override fun onAnimationEnd(animation: Animator?) {                    linearLayout.visibility = View.GONE                    scrollView.post {                        scrollView.smoothScrollTo(0, rect.bottom);                    }                }                override fun onAnimationCancel(animation: Animator?) {                }                override fun onAnimationStart(animation: Animator?) {                }            })        } else {            arrow.rotation = 0f            ObjectAnimator.ofFloat(                linearLayout,                "translationY",                -linearLayout.measuredHeight.toFloat(), 0.0f            ).apply {                duration = 500                interpolator = AccelerateInterpolator()                start()            }.addListener(object : Animator.AnimatorListener {                override fun onAnimationRepeat(animation: Animator?) {                }                override fun onAnimationEnd(animation: Animator?) {                    linearLayout.visibility = View.VISIBLE                    scrollView.post {                        scrollView.smoothScrollTo(0, rect.bottom);                    }                }                override fun onAnimationCancel(animation: Animator?) {                }                override fun onAnimationStart(animation: Animator?) {                }            })        }

根据传入的View的visibility来执行收缩或者展开,scrollView不是找不到而是最外层布局哦。

更多相关文章

  1. Android Studio 添加百分比布局库的依赖报错 第一行代码
  2. Android 基础布局控件自定义view使用练习
  3. 安卓自定义流式布局
  4. Android自定义dialog弹出布局
  5. LinearLayout 线性布局

随机推荐

  1. MySQL数据库操作的基本命令
  2. MySQL常用的建表、添加字段、修改字段、
  3. Mac下MySQL安装配置教程
  4. 配置Mysql主从服务实现实例
  5. windows2008 64位系统下MySQL 5.7绿色版
  6. 图文详解MySQL中两表关联的连接表如何创
  7. VMWare linux mysql 5.7.13安装配置教程
  8. 深度解析MySQL启动时报“The server quit
  9. MySQL5.7.18修改密码的方法
  10. Linux CentOS MySQL数据库安装配置教程