如何制作自定义视图的隐藏和显示动画

时间:2018-08-16 21:38:04

标签: java android kotlin android-animation

任务:

我想隐藏并显示带有动画的视图。


问题:

首先,我尝试通过更改视图的可见性(“消失”,“可见”)(我使用Transition API)来做到这一点,但是动画存在一些错误。

然后我尝试使用缩放动画来实现,但是editText(子视图)中存在一个带有提示的错误。


我要设置动画的自定义视图:

class SearchAdditionalView(context: Context, attrs: AttributeSet) : LinearLayout(context, attrs) {

    private val transitionSet: TransitionSet by lazy {
        val transitionSet = TransitionSet()

        with(transitionSet) {
            addTransition(ChangeBounds())
            interpolator = DecelerateInterpolator()
            duration = 200
        }

        transitionSet
    }

    init {
        inflate(context, R.layout.include_search_navbar_addition, this)

    }

    fun toggle() {
        visibility = View.VISIBLE
        TransitionManager.beginDelayedTransition(parent as ViewGroup, transitionSet)
    }
}

问题:

此动画是否有良好的做法,我如何集成它?

1 个答案:

答案 0 :(得分:0)

在对TransitionManager.beginDelayedTransition()进行任何更改之前,应先调用

ViewGroup。查看training docs,它应该可以给您带来启发。