Android - оживить новый фрагмент поверх старого - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть несколько фрагментов.При переходе между ними новый фрагмент должен летать справа и быть видимым поверх старого фрагмента.Тогда я должен удалить старый фрагмент.Кроме того, я не должен использовать задний стек.

Ресурс анимации довольно прост:

<!--transaction_left.xml-->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@integer/transition_length"
        android:fromXDelta="100%"
        android:toXDelta="0%"/>
</set>

ну, есть второй, который вообще не двигается:

<!--transition_none.xml-->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:duration="@integer/transition_length"/>
</set>

Внутри моей деятельности я хочу использовать код, подобный

fragmentManager.beginTransaction()
    .setCustimAnimations(R.anim.transition_left, R.anim.transition_none)
    .replace(R.id.fragment_container, newFragment)
    .commit()

. Используя этот код, новый фрагмент помещается под старого.Так что на время анимации я увижу старый, после чего появится новый фрагмент.Я просто добавляю новый фрагмент (заменяя remove на add), новый фрагмент будет отображаться правильно, однако старый фрагмент не удаляется.

Существует ли удобный способ для достижения желаемого поведения безиспользуя второй переход, который запланирован на R.integer.transition_length миллисекунды позже, в котором старый фрагмент удаляется вручную.

...