我的ViewPager有5个页面(我尝试重复使用),它的自定义PagerAdapter有一个带视图的支持数组,我最初在启动时添加(膨胀)它们,将当前页面设置为中间页面:
0 1 |2| 3 4
现在,在页面滚动时,我重新使用数组另一端的一个视图,用新数据填充它(基于日历日期) - 我在数组中取最后一个视图并将其移动到开头,反之亦然,具体取决于滚动方向。然后我用新数据填充它。
Reusing views:
4 0 |1| 2 3 or
1 2 |3| 4 0 and so on ...
我在onPageSelected
的{{1}}移动并更新可重复使用的页面(此处为4或0),这会导致短暂的滚动动画因为耗时的例程而冻结。
这就是为什么我决定在单独的线程中执行所有慢速代码然后在调用View ViewPager.OnPageChangeListener
方法的页面中填充子视图的原因。好吧,它现在工作得更快,但无论如何都会出现一点冻结。
问题是,如何正确优化/实施此类场景以实现平滑的动态分页?