簡體   English   中英

Android 活動返回過渡剎車時返回 2 個屏幕

[英]Android activity back transition brakes when going back 2 screens

我做了一個簡單的示例來證明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>

每當我 go: A -> B -> C -> B (back button) -> A (back button)最后 animation (A -> C)沒有播放。

只做A -> B -> A (back button)時效果很好

以下是我開始活動的方式:

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 錯誤還是我做錯了什么?

它不起作用,因為ActivityB是由ActivityC “啟動”的,而它確實適用於過渡到ActivityB ,因為ActivityC是由它啟動的。

看來您必須使用反向的ActivityOptions手動覆蓋onBackPressed()並從ActivityB啟動ActivityA 這樣做的唯一方法是在finish() overridePendingTransition() ) 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM