なぜこれが常に難しいのか分かりません。私はAppCompatライブラリとandroid.app.Fragment
を使用しています。私は左/右(iOSのように)で新しいフラグメントをスライドするアニメーションを追加しようとしますが、フラグメントが追加されると、アニメーションなしで即座に追加/削除されます。objectAnimatorsを使用したR.animatorがフラグメントのアニメーションの追加/削除を使用していません
私は間違っていますか?私も(すなわち、3秒)3000にアニメーションの時間を設定
getFragmentManager()
.beginTransaction()
.setCustomAnimations(R.animator.slide_in_from_right, R.animator.slide_out_to_the_left)
.add(R.id.navrootlayout, fragment)
.addToBackStack(null)
.commit();
RES /アニメーター/ slide_in_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@interpolator/decelerate_cubic"
android:valueFrom="1"
android:valueTo="0"
android:valueType="floatType"
android:propertyName="xFraction"
android:duration="3000"/>
</set>
RES /アニメーター/ slide_out_to_the_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@interpolator/decelerate_cubic"
android:valueFrom="0"
android:valueTo="-1"
android:valueType="floatType"
android:propertyName="xFraction"
android:duration="3000"/>
</set>
私はそれがまったく使われているかどうかを明確に見ることができたが、そうではない。フラグメントはアニメーションなしですべて追加されます。私はそれが起こっている画面ビデオをキャプチャし、新しい断片が現れて(そして最終的には消える)瞬時に表示されます。
「xFraction」はどのようなプロパティですか? – DeeV
Yeeeeaaaah、私はちょうどそれを考え出す最後の時間を過ごした。どうやら、私がこれを得たサンプルコードは、レイアウトクラスにカスタムプロパティを追加することを前提としていましたが、それは言及していませんでした。 –
アニメーターでは、相対的な翻訳メカニズムがないので、スライドできないと思うのです。 "xFraction"アニメーション( "X"の割合)を作成してみましょう。 – DeeV