Android - пустой экран при переходе фрагмента - PullRequest
0 голосов
/ 30 сентября 2019

Я использую нестандартную анимацию фрагментов. XML-файлы приведены ниже:

Снизу вверх:

<?xml version="1.0" encoding="utf-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
    <translate android:duration="350" android:fromXDelta="0%" android:fromYDelta="100%" android:toXDelta="0%" android:toYDelta="0%" />
</set>

Сверху вниз:

<?xml version="1.0" encoding="utf-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:duration="350" android:fromXDelta="0%" android:fromYDelta="0%" android:toXDelta="0%" android:toYDelta="100%" />

</set>

ЭтоПример работает, как и ожидалось:

FragmentTransaction ft = fragmentManager.beginTransaction();
ft.setCustomAnimations(0, R.anim.top_to_bottom);
ft.replace(R.id.main_layout, fragmentA, fragmentA.ID);
ft.commit();

Но этот пример не работает для меня. Я вижу пустой экран при переходе. Фрагмент А исчезает, пустой экран существует, а фрагмент В поднимается.

FragmentTransaction ft = fragmentManager.beginTransaction();
ft.setCustomAnimations(R.anim.bottom_to_top, 0);
ft.replace(R.id.main_layout, fragmentB, fragmentB.ID);
ft.commit();

1 Ответ

0 голосов
/ 30 сентября 2019

Попробуйте добавить эту строку, потому что вы заменяете предыдущий фрагмент новым, он показывает пустой экран.

FragmentTransaction ft = fragmentManager.beginTransaction();
ft.setCustomAnimations(R.anim.bottom_to_top, 0);
ft.replace(R.id.main_layout, fragmentB, fragmentB.ID);

// This line will maintain previous fragment in stack
ft.addToBackStack(fragmentB.getClass().getSimpleName());

ft.commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...