0

Android 7 (Nougat) で共有要素遷移アニメーションの問題に直面する

私の場合、アクティビティ A は共有要素遷移を使用してアクティビティ B を呼び出し、B を押し戻すと終了し、A が表示されます。現在、A では onStart が呼び出されることはありません。

以前のバージョンの Android では正常に動作します。

奇妙な振る舞い。助けが必要

4

1 に答える 1

2

で定義するのではなく、コードで入力遷移と終了遷移を定義することで問題を解決しましたthemes.xml-> から次のコード行を削除しましたthemes.xml:

 <item name="android:windowEnterTransition" tools:targetApi="lollipop">
        @transition/fade
    </item>
    <item name="android:windowExitTransition" tools:targetApi="lollipop">
        @transition/fade_out
    </item>

    <item name="android:windowReturnTransition" tools:targetApi="lollipop">
        @transition/fade_out
    </item>

    <item name="android:windowSharedElementEnterTransition" tools:targetApi="lollipop">
        @transition/change_image_trans
    </item>
    <item name="android:windowSharedElementExitTransition" tools:targetApi="lollipop">
        @transition/change_image_trans_out
    </item>

    <item name="android:windowSharedElementReturnTransition" tools:targetApi="lollipop">
        @transition/change_image_trans_out
    </item>

そして、私の活動に次の行を追加しました(活動にonCreateコンテンツを追加する前に追加する必要があります):

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        // inside your activity (if you did not enable transitions in your theme)
        getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
        // set an enter transition

        getWindow().setEnterTransition(new Explode());
        // set an exit transition
        getWindow().setExitTransition(new Explode());
    }

このコードでは、アクティビティのトランジションを設定するだけです - コンテンツトランジションも変更したい場合は、呼び出す必要がありますgetWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

于 2017-03-07T07:52:53.290 に答える