私はこの問題に直面し、ほんの数秒前に修正しました。だから、私はあなたたちと私の解決策を共有する必要があると思います。
アニメーションxmlファイルで、android:fillAfter="true"
保持するときに削除しましたandroid:fillEnabled="true"
。
アニメーションリスナーを登録し、メソッドで、ビューの位置を変更するためonAnimationEnd()
に呼び出します。View#Layout()
int newLeft = (int) (layoutContent.getLeft() + layoutContent.getWidth() * 0.8);
layoutContent.layout(newLeft,
layoutContent.getTop(),
newLeft + layoutContent.getMeasuredWidth(),
layoutContent.getTop() + layoutContent.getMeasuredHeight());
私の場合、アニメーションはlayoutContentを幅の80%左側にスライドさせます。
正常に動作します。お役に立てれば。
@Update:今日、Android3.0+で使用できますObjectAnimator
。3.0未満のAndroid向けに開発している場合は、サポートライブラリv.4で見つけることができます。ObjectAnimator
アニメーションのベスターです。
@ Update#2:AndroidAPIの上位12バージョンでViewPropertyAnimatorを使用できます。パフォーマンスが向上し、クリックイベントの問題が修正されます。例:
mButton.animate()
.setDuration(TIME)
.translationY(VALUE)
.start();