ビューを非表示にして親レイアウトから削除するいくつかの方法を試しました。
- アルファ フェード アニメーションを呼び出し、続いて setVisibility(GONE) を呼び出します。
- アルファ フェード アニメーションを呼び出し、続いて AnimationListener 内で setVisibility(GONE) を呼び出します。
- アルファ フェード アニメーションを呼び出した後、AnimationListener 内の親レイアウトを削除します。
そのたびに、結果のアニメーションは失敗します --- ビューが画面から 2 回消えます。アルファ フェード アニメーションは正常に機能しますが、可視性を変更したり、親ビューから削除したりすると、2 回目に消える前にすぐに再び表示されます。その結果、予想外のぎくしゃくしたアニメーションが発生します。
コード例:
Animation animation = AnimationUtils.loadAnimation(AddTaskActivity.this,
R.anim.fade_out);
final LinearLayout parentView = (LinearLayout) findViewById(R.id.addtask_root);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
parentView.post(new Runnable() {
public void run() {
parentView.removeView(test);
}
});
}
そのアニメーションは失敗します --- テスト ビューがビューから 2 回消えます。
何か案は?