返回 2 个屏幕时,Android Activity 返回过渡刹车

标签 android android-animation android-support-library android-transitions

我做了一个简单的例子来证明ActivityOptions.makeSceneTransitionAnimation(activity)有问题.
我有 3 个 Activity :A、B 和 C。
流程很简单:A -> B -> C
所有 Activity 都具有相同的风格:

<style name="TransitionsTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="android:windowEnterTransition">@transition/slide_in_from_bottom</item>
    <item name="android:windowExitTransition">@transition/slide_out_to_bottom</item>
</style>
每当我去:A -> B -> C -> B (back button) -> A (back button)最后一个动画(A -> C)没有播放。
只做 A -> B -> A (back button) 时效果很好
以下是我开始 Activity 的方式:
fun start(activity: Activity) {
            val intent = Intent(activity, TransitionActivityA::class.java) //or B or C
            val transitionsOptions = ActivityOptions.makeSceneTransitionAnimation(activity)
            activity.startActivity(intent, transitionsOptions.toBundle())
        }
演示问题的应用程序:https://github.com/jkwiecien/AndroidCaseStudies/tree/transitions
使用分支transitions这是Android错误还是我做错了什么?

最佳答案

它不起作用,因为 ActivityBActivityC“开始” , 虽然它确实适用于过渡到 ActivityB , 因为 ActivityC是由它开始的。
看来您必须覆盖 onBackPressed()并开始ActivityA来自 ActivityB手动,使用反向 ActivityOptions .这样做的唯一方法是调用 overridePendingTransition()finish() 之后.

关于返回 2 个屏幕时,Android Activity 返回过渡刹车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67802482/

相关文章:

android - 在 Android 设备上执行内置 Android 应用程序的奇怪异常

android - 在 Android 中上下滑动更改布局

android - 在导致空指针异常的 Activity 之间切换

android - java.lang.RuntimeException : Unknown animation name: objectAnimator

Android 文本周围的黑色轮廓

android - ExpandableListView - 空组消息

java - Fragment 内的 TabLayout(应用程序已停止)

android - 如何将动画添加到 BottomSheetDialogFragment

具有自定义项目布局的 Android Actionbar PopupMenu

java - FragmentManager 中的 NullPointerException