短视频程序源码,简单布局收缩动画

软件工具
0 694
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?) {
                }
            })
        }


精选帖子
DAWN 融资3300万美金,下一个挖矿空投大项目类似grass 240
Teneo融资上千万美元,类似小草Grass挂机项目 259
Android 标枪定位 v2.11.3 免Root实现虚拟定位 302
Windows11 轻松设置 v1.10 绿色版 211
Android 海螺问问 Ghat GPT v2.30.0 免费AI助手 292
Android 海绵音乐 v2.33 免费AI音乐软件 228
Android 换脸变装视频秀 v1.2.4 美女视频AI换脸 205
Android 配音鸭文字转语音 v1.6.0登陆解锁会员 140
Android 配音工厂 v1.0.8 解锁会员版 388
热门帖子
Android 标枪定位 v2.11.3 免Root实现虚拟定位 302
Android 海螺问问 Ghat GPT v2.30.0 免费AI助手 292
Teneo融资上千万美元,类似小草Grass挂机项目 259
DAWN 融资3300万美金,下一个挖矿空投大项目类似grass 240
Android 海绵音乐 v2.33 免费AI音乐软件 228
Windows11 轻松设置 v1.10 绿色版 211
Android 换脸变装视频秀 v1.2.4 美女视频AI换脸 205
Ai一键生成影视解说视频,仅需十秒即可完成,多平台分发,轻松日入1000+ 155
Android 配音鸭文字转语音 v1.6.0登陆解锁会员 140