【问题标题】:How to wait with Fragment Transaction until Fragment View is created如何等待 Fragment Transaction 直到创建 Fragment View
【发布时间】:2019-02-02 00:39:06
【问题描述】:

有什么方法可以等待片段事务的动画,直到新片段的视图完全创建?

非常感谢任何帮助。

在我的例子中创建视图需要一些时间,因为正在设置约束并且正在使用 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()

【问题讨论】:

    标签: android animation transactions fragment


    【解决方案1】:

    我找到了解决办法。

    而不是像这样使用自定义动画

    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
    

    现在动画在视图创建之前不会开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多