android - 在通过导航组件添加到 Action 的动画完成之前,防止点击 View

标签 android android-animation listener android-architecture-navigation

给定 2 个 fragment ABA 移动到 B(所以 A -> B), via navigation component action with enter animation 添加了。如何防止 Fragment B 中的 View 在输入动画运行时被点击?我发现了这个问题 How to add listener to android Navigation Architecture Component action animation但不幸的是没有答案。

我在文档中发现,我可以通过挂接到 NavAction 上的 NavOptions 对象获取该动画的资源 ID,但不是 Animation 对象本身。

最佳答案

您可以首先在 xml android:enabled="false" 中禁用您的 View ,然后在 fragment 的 onViewCreated 中设置一个延迟 使用协程的动画持续时间:

override fun onViewCreated(view: View, savedState: Bundle?) {
    super.onViewCreated(view, savedState)

    // Initialize views here. 


    lifecycleScope.launch {
        delay(resources.getInteger(R.integer.anim_duration).toLong())
        // Enable views here
        myView.isEnabled = true
    }
}

关于android - 在通过导航组件添加到 Action 的动画完成之前,防止点击 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59147647/

相关文章:

android - 使用 XML 中的 "animateLayoutChanges"属性对布局进行动画处理

android - android 5 上的共享元素 Activity 转换

java - JTextField 监听器在文本更改时修改 textField 的文本

android - setOnItemClickListener 不起作用 - 为什么?

android - Firebase 实时数据库与存储

android - 发送未收到的短信广播

java - 不幸的是,应用程序已停止工作?

android api 21+ camera2 api

java - 全局 boolean 值不能被另一个类访问

安卓翻译动画