2012-02-12 8 views
5

私は完全に画面外に配置されたビューを持っており、画面上にアニメーション表示しようとしています。Androidのアニメーション表示がオフの画面から外されている

私が呼ぶとき:

view.startAnimation(tA); 

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

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

ビューが親ビューから離れたときにアニメーション表示されないようにするにはどうすればよいですか?

答えて

1

Androidのアニメーションは、開始時または終了時に画面外の座標が表示されてもうまくいかないという同じ問題を研究していると私の理解です。

このフォーラムではこのバグについて対話していますが、まだ4.2で問題が発生しています。

編集:二思想に

、私はちょうどこのanswer渡って走って、あなたは、新しいAPIの(ObjectAnimator)を使用することができれば、それは働いて代替手段を提供します。 ObjectAnimator.ofFloat(view, "y", 0, 100);の性質は

ObjectAnimator.ofFloat(Object objBeingAnimated, String propertyBeingAnimated, float startValue, float endValue) 
0

ある

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

私は問題を修正onAnimationUpdate()、中MarginLayoutParams.topMargin(私の場合)を変更するValueAnimatorを使用してthis answerを見つけました。私のビューは、ビューがオフスクリーンになるように余白を設定して開始します。

ObjectAnimatorのアプローチは有望でしたが、私にとってはうまくいかず、TranslateAnimationのオフスクリーンビューと同じカットオフの問題がありました。

関連する問題