Как ждать с транзакцией фрагмента, пока не будет создан фрагмент просмотра - PullRequest
0 голосов
/ 01 февраля 2019

Можно ли подождать с анимацией транзакции фрагмента, пока представление нового фрагмента не будет полностью создано?

Любая помощь очень ценится.

Создание представления в моемcase занимает некоторое время, потому что устанавливаются ограничения и форматируется текст с помощью 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()

1 Ответ

0 голосов
/ 01 февраля 2019

Я нашел решение.

Вместо использования пользовательской анимации, подобной этой

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

Теперь анимация не начнется, покапредставление создано.

...