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

时间:2016-02-02 11:01:23

标签: android performance android-viewpager frame-rate

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

1 个答案:

答案 0 :(得分:1)

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