在动画结束后设置“消失”视图的可见性

时间:2018-10-10 13:17:29

标签: android kotlin

在将视图的Alpha值设置为零后,我试图将视图的可见性设置为GONE

        view.animate()
            .alpha(0.0f)
            .setDuration(500)
            .setListener(object : AnimatorListenerAdapter() {
                    override fun onAnimationEnd(animation: Animator) {
                        super.onAnimationEnd(animation)
                        view.visibility= GONE
                    }
                })

但是动画显示两次。换句话说,调用view.visibility= GONE后,我的视图再次显示和隐藏。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我的错误是在布局的根目录中添加android:animateLayoutChanges="true"。它再次使我的观点动起来!

答案 1 :(得分:0)

使用此视图动画时,有一个withEndAction方法,该方法需要可运行的代码,并且使用lambda时,它看起来像这样:

 view.animate()
        .alpha(0.0f)
        .setDuration(500).withEndAction{
           view.alpha = 0.0f
           view.visibility= GONE 
           }

尝试一下。

希望这会有所帮助。