我有一个无限且自动滚动的视图寻呼机,有3页(视图,而不是片段)。使用ObjectAnimator
我设置了一个虚拟动画:
valueAnimator.setRepeatMode(ObjectAnimator.RESTART);
valueAnimator.setRepeatCount(ObjectAnimator.INFINITE);
valueAnimator.setDuration(1500);
并在onAnimationRepeat
中,我使用setCurrentItem(nextItem, true)
移至下一页。但是,如果我坐在这个屏幕上等待,那么在10次左右的页面更改后,UI性能会越来越低(使用TinyDancer我观察到FPS从60下降到20)。
但是,将行更改为setCurrentItem(nextItem, false)
(将smoothScroll
设置为false)可以消除性能下降。
是否有多次调用setCurrentItem
会导致此问题?我可以调整smoothScroll
行为来解决这个问题吗?同样,我在此寻呼机中最多可以加载5个视图,并且我观察到在观看FPS下降时内存使用率保持不变。
答案 0 :(得分:1)
这很可能与受ViewPager
影响的观点有关。是否存在ViewPager
所在的父布局?检查您是否有父视图。虚拟动画可以使父布局重新绘制自身和子元素很多次。当你有......等待它时,这尤其麻烦......嵌套视图!