在完全创建新的片段视图之前,是否有办法等待片段事务的动画?
非常感谢您的帮助。
在我的情况下,创建视图需要一些时间,因为设置了约束并且使用SpannableStringBuilder格式化了文本。因此,在大多数情况下,由于主线程上的工作量过多,因此会跳过动画。
// Kotlin
val newFragment = MyFragment()
val backStackName = "myfragment"
val fragmentManager = activity.supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_right, R.anim.slide_in_right, R.anim.slide_out_right)
fragmentTransaction.add(R.id.MyFragmentLayout, newFragment)
fragmentTransaction.addToBackStack(backStackName)
fragmentTransaction.commit()
答案 0 :(得分:0)
我找到了解决方法。
而不是像这样使用自定义动画
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_right, R.anim.slide_in_right, R.anim.slide_out_right)
我用enterTransition
val enterTransition = Slide(Gravity.RIGHT)
enterTransition.addTarget(R.id.MyFragmentLayout)
newFragment.enterTransition = enterTransition
现在,在创建视图之前,动画将不会开始。