Я применяю переходы сцены к Активности. Говорит, что у меня есть 2 действия: MainActivity
с режимом запуска singleTask
и NextActivity
с режимом запуска standard
. У них одна и та же тема:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
И при следующих сценариях:
MainActivity
запускается NextActivity
через:
startActivity(Intent(this,NextActivity::class.java), ActivityOptions.makeSceneTransitionAnimation(this).toBundle())
После сценария 1 NextActivity
возвращается к MainActivity
через finishAfterTransition()
После сценария 1 NextActivity
возвращается к MainActivity
через:
startActivity(Intent(this,MainActivity::class.java), ActivityOptions.makeSceneTransitionAnimation(this).toBundle())
Поскольку MainActivity
находится в режиме запуска singleTask
, 2 и 3 должны привести к одинаковому поведению стека задач: NextActivity
завершено и пользователь возвращается к MainActivity
.
Теперь проблема в том, что в 1 и 2 переходы воспроизводятся правильно, но в 3 переходы не воспроизводятся. Подробно, NextActivity
оставляет анимацию по умолчанию (скользит вниз по экрану), в то время как MainActivity
остается прозрачным с видимыми обоями, хотя и не может быть использован повторно.
После добавления некоторых println
строк к слушателям переходов я обнаружил, что в 3 запускается выходной переход для NextActivity
, хотя он не отображается должным образом. И переход повторного ввода для MainActivity
не запускается.
В чем причина такого странного поведения?
Для справки, код (на Kotlin) видов деятельности: здесь .