java - 如何制作自定义 View 的隐藏和显示动画

标签 java android kotlin android-animation

任务:

我想用动画隐藏和显示我的 View 。


问题:

首先,我尝试通过更改 View 的可见(GONE,VISIBLE)(我使用 Transition API)来实现它,但是动画存在错误。

然后我尝试用缩放动画来做,但是在 editText( subview )中有一个提示的错误。


我想要设置动画的自定义 View :

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)
    }
}

问题:

这个动画有好的做法吗?我该如何整合它?

最佳答案

TransitionManager.beginDelayedTransition() 应在对 ViewGroup 进行任何更改之前先调用。查看training docs这应该会给你一个想法。

关于java - 如何制作自定义 View 的隐藏和显示动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51885667/

相关文章:

java - 在java中显示两个日期之间的小时数

android - 如何在Kotlin中创建可用货币列表

android - AsyncTask 第一次执行时花费太多时间

android - 如果 Firestore 数据库发生变化,我是否需要重新阅读所有文档?

android - 我发布了一个应用程序,一旦对其进行审核,评论就会在几秒钟内消失。发生了什么事,我该如何解决?

java - Kotlin 模块源未打包在 aar 中

testing - KoinAppAlreadyStartedException : A Koin Application has already been started

java - 从包 swing 导入 xml 文件

java - 当从容器中删除任何组件时,如何重用容器中的区域?

java - 为什么 "new String();"是一条语句,而 "new int[0];"不是?