我遇到了问题,在将动画应用到视图一次后,setVisibility()
将无法正常工作。
问题
public void show():
1.在视图上调用setVisibility(View.VISIBLE)
2.查看外观是动画的:
view.animate()。α(1.0F).setDuration(3000)。 等......
public void hide()
1.查看消失动画:
view.animate()。α(0.0F).setDuration(3000)。 等...
2.视图可见性设置为GONE
这是我的初始动画代码:
myGridView.animate()
.alpha(0.0f)
.setDuration(100);
令人惊讶的是,添加AnimatorListenerAdapter
并覆盖onAnimationEnd
而不做任何其他事情就解决了这个问题。
最近,我找到了其他SO solution,他们在clearAnimation()
之前的视图中调用了setVisibility()
。
所以,这在代码中起作用了:
myGridView.clearAnimation();
myGridView.setVisibility(View.VISIBLE);
我坚持的最终代码:
myGridView.animate()
.alpha(0.0f)
.setDuration(100);
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
myGridView.clearAnimation();
myGridView.setVisibility(GridView.GONE);
}
});
问题
为什么覆盖onAnimationEnd
自己工作?它是否与clearAnimation
?
答案 0 :(得分:0)
为什么重写 onAnimationEnd 自己工作?它是否以某种方式与 clearAnimation 相关?
clearAnimation()
会启动onAnimationCancel()
,然后onAnimationEnd()
会在此视图的Animation
上进行调用。