使用 overrideActivityTransition 进行活动转换在 Android 34 中不起作用

GGK*_*ine 6 java android android-activity overridependingtransition

我用来overridePendingTransition从 MainActivity 过渡到 Sub-Activity。该转换将 MainActivity 从右侧移出,并将子活动从左侧移入屏幕。

我需要通过按下按钮来触发转换,而不是通过按下按钮来启动转换。

overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);
Run Code Online (Sandbox Code Playgroud)

更改为overrideActivityTransition上述转换后,不适用于 Android >=34。

overrideActivityTransition(OVERRIDE_TRANSITION_OPEN,R.anim.slide_in_left,R.anim.slide_out_right);
Run Code Online (Sandbox Code Playgroud)

如何恢复 Android 34 下的行为?

谢谢GGK

小智 0

与以前的方法不overrideActivityTransition完全兼容overridePendingTransition
你应该调用overrideActivityTransition你的内部Sub-Activity方法onCreate()

if (Build.VERSION.SDK_INT >= 34) {
    overrideActivityTransition(
        Activity.OVERRIDE_TRANSITION_OPEN,
        R.anim.slide_in_left,
        R.anim.slide_out_right,
        Color.TRANSPARENT
    )
}
Run Code Online (Sandbox Code Playgroud)

有关进一步说明,请查看文档: https ://developer.android.com/about/versions/14/features/predictive-back#custom-activity