Переход сцены действия не работает при запуске существующего однозадачного действия - PullRequest
0 голосов
/ 25 августа 2018

Я применяю переходы сцены к Активности. Говорит, что у меня есть 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>

И при следующих сценариях:

  1. MainActivity запускается NextActivity через:

    startActivity(Intent(this,NextActivity::class.java), ActivityOptions.makeSceneTransitionAnimation(this).toBundle())
    
  2. После сценария 1 NextActivity возвращается к MainActivity через finishAfterTransition()

  3. После сценария 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) видов деятельности: здесь .

...