返回2个屏幕时,Android活动返回过渡刹车
我制作了一个简单的示例来证明返回2个屏幕时,Android活动返回过渡刹车,android,android-animation,android-support-library,android-transitions,Android,Android Animation,Android Support Library,Android Transitions,我制作了一个简单的示例来证明ActivityOptions.makeSceneTransitionAnimation(activity)有问题 我有3项活动:A、B和C。 流程很简单:A->B->C 所有活动都有相同的风格: <style name="TransitionsTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="and
ActivityOptions.makeSceneTransitionAnimation(activity)
有问题
我有3项活动:A、B和C。
流程很简单:A->B->C
所有活动都有相同的风格:
<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>
演示该问题的应用程序:
使用分支transitions
这是安卓的错误还是我做错了什么?它不起作用,因为
ActivityB
是由ActivityC
启动的,而它在过渡到ActivityB
时确实起作用,因为ActivityC
是由它启动的
似乎您必须覆盖
onBackPressed()
并使用反向ActivityOptions
从ActivityB
手动启动ActivityA
。唯一的方法是在finish()
之后调用overridePendingTransition()
,您是否尝试通过调用overridePendingTransition()
方法来覆盖活动的onBackPressed
?就像这个问题的答案一样:A->B->C->B(后退按钮)->A(后退按钮)
-这是什么意思?从C
到B
->后退按钮
到A
->后退按钮
到(预期的)C
???或者从C
->后退按钮
到B
->后退按钮
到A
???在任何情况下,都可能对您有所帮助。在emulator(api 24和api 27)上运行良好,它是否特定于某些Android api?是的,在我的情况下,它在api 30上不起作用,但在23和24上运行良好。如果您使用的不是默认模式,则启动模式有时会导致转换混乱,这可能是它的来源
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())
}