android – 自动滚动视图寻呼机导致帧丢失

我有一个无限和自动滚动的视图寻呼机有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下降时内存使用率保持不变.

最佳答案 它很可能与受ViewPager影响的视图有关. ViewPager所在的父布局是否存在?检查您是否有父视图.虚拟动画可以使父布局重新绘制自身和子元素很多次.当你有……等待它时,这尤其麻烦……嵌套视图!

点赞