Android 7 (Nougat) で共有要素遷移アニメーションの問題に直面する
私の場合、アクティビティ A は共有要素遷移を使用してアクティビティ B を呼び出し、B を押し戻すと終了し、A が表示されます。現在、A では onStart が呼び出されることはありません。
以前のバージョンの Android では正常に動作します。
奇妙な振る舞い。助けが必要
Android 7 (Nougat) で共有要素遷移アニメーションの問題に直面する
私の場合、アクティビティ A は共有要素遷移を使用してアクティビティ B を呼び出し、B を押し戻すと終了し、A が表示されます。現在、A では onStart が呼び出されることはありません。
以前のバージョンの Android では正常に動作します。
奇妙な振る舞い。助けが必要
で定義するのではなく、コードで入力遷移と終了遷移を定義することで問題を解決しました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);