Android:アニメーション完了後に位置が初期位置に戻る問題を解決
765 ワード
今日TranslateAnimationを使用してLinearLayoutをシフトすると、アニメーションが完了すると自動的に初期の状態に戻り、fillAfterを設定してもあまり役に立たないことがわかりました.
よく考えてみると、
この現象は正常で、TranslateAnimationはシフトアニメーションの効果を実現するだけで、Linearlayoutの位置を本当に変えることはできないので、
オリジナルの投稿、転送は出典を明記してください:http://thierry-xing.iteye.com/blog/1400217
よく考えてみると、
この現象は正常で、TranslateAnimationはシフトアニメーションの効果を実現するだけで、Linearlayoutの位置を本当に変えることはできないので、
AnimationListener
を追加する必要があります.アニメーションが終了した後(onAnimationEnd()
)、LayoutParamの関連属性を設定することでLinearlayoutの位置を変更する必要があります.@Override
protected void onAnimationEnd() {
super.onAnimationEnd();
FrameLayout.LayoutParams ll = new FrameLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.FILL_PARENT);
ll.setMargins(-50, 0, 0, 0);
main_layout.setLayoutParams(ll);
}
オリジナルの投稿、転送は出典を明記してください:http://thierry-xing.iteye.com/blog/1400217