transaction.show
と を使用してフラグメントのペア間の遷移をアニメーション化し、フラグメントtransaction.hide
を交換しようとしています。replace
これは新しいフラグメントをインスタンス化することを理解しているので、使用するよりも簡単だと思いました。
(フラグメントはおそらく数百回以上再利用され、バックスタックのメモリ使用量が高くなり、データベースにすべてのフラグメント情報を保存している場合、バックスタックの管理は苦痛になります)
私が使うとき
transaction.setCustomAnimations(R.animator.slide_out_right, R.animator.slide_in_left)
トランジション (またはその逆アナログ) をアニメーション化するには、アニメーションは機能しますが、フラグメントはトランジション後に消えます。
私のトランジション アニメーションは、このスレッドで指定されているものに基づいて、以下のように XML で定義されています。
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="x"
android:valueType="floatType"
android:valueFrom="0"
android:valueTo="1280"
android:duration="500"
/>
</set>
- サポート ライブラリを使用していません。
- 私は両方のフラグメントに 1 つのフレームレイアウトを使用しています。
- 問題の性質はこの質問と似ていますが、各フラグメントに 2 つのフレームレイアウトが使用されており、300 ミリ秒のアニメーション時間内に 2 つのトランジションが発生した場合にのみ問題が発生します。
AnimatorSet
作成者は、各レイアウトで使用する回避策を見つけました。Android初心者として、彼が何を意味するのか、どうやってこれを行うのかわかりません。
どこが間違っているのか分かりますか?上記の人が行ったように、そのような単純なフラグメント遷移をアニメーション化する別の方法はありますか? バグでしょうか?ありがとうございました。