間違った場所で多くの掘り出した後、自分自身で答えを見つけました。誰かを助けるかもしれない。
animateLayoutChanges
プロパティは、LayoutTransition
のインスタンスを使用してViewGroup
のジョブを実行します。
ので、アニメーションを変更するために、あなたはLayoutTransition
のインスタンスを作成することができ、あなたが変更してsetLayoutTransition()
経由ViewGroup
にそのインスタンスを割り当てる必要が移行のためAnimator
を設定します。
私の場合、結果は次のとおりです。LayoutTransition reference documentationで
Animator scaleDown = ObjectAnimator.ofPropertyValuesHolder((Object)null, PropertyValuesHolder.ofFloat("scaleX", 1, 0), PropertyValuesHolder.ofFloat("scaleY", 1, 0));
scaleDown.setDuration(300);
scaleDown.setInterpolator(new OvershootInterpolator());
Animator scaleUp = ObjectAnimator.ofPropertyValuesHolder((Object)null, PropertyValuesHolder.ofFloat("scaleX", 0, 1), PropertyValuesHolder.ofFloat("scaleY", 0, 1));
scaleUp.setDuration(300);
scaleUp.setStartDelay(300);
scaleUp.setInterpolator(new OvershootInterpolator());
LayoutTransition itemLayoutTransition = new LayoutTransition();
itemLayoutTransition.setAnimator(LayoutTransition.APPEARING, scaleUp);
itemLayoutTransition.setAnimator(LayoutTransition.DISAPPEARING, scaleDown);
ViewGroup av = (ViewGroup)v.findViewById(R.id.animated_layout);
av.setLayoutTransition(itemLayoutTransition);
詳細情報。
このコードを完全に表示してください。私にとってはうまくいかないようです。 –
これは実際Androidのためにコード化されてからしばらくしていますが、私のアーカイブからそれを掘り起こすことができました:) RecyclerView(android.support.v7ライブラリから)に慣れているなら、この要点が役立ちます:https: //gist.github.com/mrnateriver/cd988f6ca745ebad7db7cc16581069これはRecyclerView.Adapterの完全な実装ではありませんが、カスタムアニメーションの仕組みを理解しておく必要があります – mrnateriver
私は通常のレイアウト(LinearLayoutなど) –