View的Detach状态对动画的影响
起因是在用内部是ViewPager2
实现的banner控件时,每个View
有浮动的动画效果,在滑动切换后,动画消失。我们都知道ViewPager2
的内部是用RecyclerView
来实现的,而RecyclerView
复用和回收View
时会将View
添加和移除,第一想法是Detach
对动画有影响,在实验过这个想法,开始分析
切入点
startAnimation
、dispatchDetachedFromWindow
源码分析
startAnimation
public void startAnimation(Animation animation) {
animation.setStartTime(Animation.START_ON_FIRST_FRAME);
setAnimation(animation);
invalidateParentCaches();
invalidate(true);
}
public void setAnimation(Animation animation) {
mCurrentAnimation = animation;
...
}
可以看到只是简单给mCurrentAnimation
进行了赋值,其他都是动画相关的设置,然后执行了invalidate
,那么动