9

完全に画面外に配置されたビューがあり、それを画面上でアニメーション化しようとしています。

私が電話するとき:

view.startAnimation(tA);

何も起こらず、tA.initialize と tA.applyTransformation が呼び出されることはありません。

アニメーションを開始する前にビューの一部が見えるようにビューを移動すると、アニメーションは正しく機能します。

親ビューから離れて配置されている場合、ビューがアニメーション化されない原因は何ですか?

4

2 に答える 2

3

開始または終了のオフスクリーン座標が提供されている場合、Android アニメーションがうまく機能しないという同じ問題を調査したことから、私の理解です。

Android フォーラムには、このバグが解決されたというダイアログがいくつかありますが、まだ 4.2 で問題が発生しています。

編集:

考え直して、この回答に出くわしました。新しい API ( ) を使用できる場合、それは有効な代替手段を提供しますObjectAnimator

View view = this;
ObjectAnimator anim = ObjectAnimator.ofFloat(view, "y", 0, 100);
anim.setDuration(super.animationDuration());
anim.start();

のプロパティがObjectAnimator.ofFloat(view, "y", 0, 100);ある場所

ObjectAnimator.ofFloat(Object objBeingAnimated, String propertyBeingAnimated, float startValue, float endValue)
于 2013-10-03T15:43:28.480 に答える
0

この回答は、 (私の場合)ValueAnimatorの を変更するために使用して見つけました。これにより、問題が修正されました。My View は、ビューが画面外になるように設定されたマージンで開始します。MarginLayoutParams.topMarginonAnimationUpdate()

このObjectAnimatorアプローチは有望でしたが、私にはうまくいきませんでしたTranslateAnimation

于 2014-07-18T20:28:01.170 に答える