我尝试了几种隐藏视图然后将其从父布局中删除的方法:
- 调用 alpha 渐变动画,然后调用 setVisibility(GONE);
- 调用 alpha 渐变动画,然后调用 AnimationListener 内部的 setVisibility(GONE)
- 调用 alpha 渐变动画,然后删除 AnimationListener 内的父布局。
每次,生成的动画都会失败——视图从屏幕上消失两次。alpha 渐变动画效果很好,但是当您更改可见性或将其从父视图中删除时,它会很快再次出现,然后再次消失。结果是一个意想不到的紧张动画。
示例代码:
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);
}
});
}
该动画失败——测试视图从视图中消失了两次。
有任何想法吗?