Подтвердить что ты не робот

Как отложить переход фрагмента в Android Lollipop?

В Android Lollipop методы Activity#postponeEnterTransition() и Activity#startPostponedEnterTransition() дают Деятельности возможность задержка, начинающаяся с переходов входов и выходов общего доступа до тех пор, пока не будут загружены все данные. Они отлично подходят для переходов Activity.

Есть ли способ достичь такого же эффекта при использовании переходов Fragment?

4b9b3361

Ответ 1

Нет прямого эквивалента в переходах фрагментов, потому что Фрагменты используют FragmentTransaction, и мы не можем отложить то, что должно произойти в транзакции.

Чтобы получить эквивалент, вы можете добавить фрагмент и скрыть его в транзакции, а затем, когда фрагмент будет готов, удалите старый фрагмент и покажите новый фрагмент в транзакции.

getFragmentManager().beginTransaction()
    .add(R.id.container, fragment2)
    .hide(fragment2)
    .commit();

Позже, когда фрагмент2 готов:

getFragmentManager().beginTransaction()
    .addSharedElement(sharedElement, "name")
    .remove(fragment1)
    .show(fragment2)
    .commit();