Выход из перехода в полупрозрачную активность

Я пытаюсь сделать простой плавный переход при полупрозрачной активности. Стиль деятельности:

<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>

Плавный входной переход работает плавно, но исчезающий выходной переход после вызова finishAfterTransition() просто мигает между моим текущим (полупрозрачным) действием и предыдущим.

Я заставил его работать, выполняя обычную анимацию на макете, а затем завершая действие. Но мне бы очень хотелось узнать, как это сделать с помощью Transition Framework для действий.


person Lukard    schedule 04.11.2018    source источник
comment
Вы пробовали <item name="android:windowExitTransition">@transition/exit</item>?   -  person codezombie    schedule 15.12.2018
comment
Да, он делает тот же эффект мерцания.   -  person Lukard    schedule 20.12.2018


Ответы (2)


При выполнении переходов на полупрозрачных действиях поведение по умолчанию exitTransition наследуется от enterTransition. На самом деле, оно отменяет переход, и мы не можем его переопределить.

К счастью, есть еще одно доступное свойство, которое играет важную роль для закрывающего перехода активности, то есть returnTransition, который является желаемым переходом, используемым для перемещения видов из сцены, когда окно готовится к закрытию.

Теперь вместо window.exitTransition = Fade(Fade.MODE_OUT) попробуйте использовать

window.returnTransition = Fade(Fade.MODE_OUT)

или вы можете переопределить его в теме действия, определенной в файле styles.xml.

<item name="android:windowReturnTransition">@transition/exit_transition</item>

где будет ваш exit_transition.xml

<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <fade
            android:duration="@android:integer/config_shortAnimTime"
            android:fadingMode="fade_out" />
</transitionSet>

внутри каталога res/transition. И вы готовы качаться!

person codervishal    schedule 03.05.2020

person    schedule
comment
Спасибо @vishal-шарма. Я знаю, что могу добиться этого таким образом. Но я хотел бы знать, как править с переходной структурой. Я хотел бы знать, почему window.exitTransition = Fade(Fade.MODE_OUT) не работает в случае полупрозрачной активности. - person Lukard; 04.11.2018