【发布时间】:2016-06-23 12:02:01
【问题描述】:
我想一次只加载一个页面。
viewpager.setOffscreenPageLimit(0);
不工作。
【问题讨论】:
标签: android
我想一次只加载一个页面。
viewpager.setOffscreenPageLimit(0);
不工作。
【问题讨论】:
标签: android
您无法使用标准的 ViewPager 实现来做到这一点。如果您看到来源,您会看到,如果它小于 1,它会将屏幕外页面限制设置为 1。
public void setOffscreenPageLimit(int limit) {
if (limit < DEFAULT_OFFSCREEN_PAGES) { //DEFAULT_OFFSCREEN_PAGES if 1
Log.w(TAG, "Requested offscreen page limit " + limit + " too small; defaulting to " +
DEFAULT_OFFSCREEN_PAGES);
limit = DEFAULT_OFFSCREEN_PAGES;
}
if (limit != mOffscreenPageLimit) {
mOffscreenPageLimit = limit;
populate();
}
}
您可以尝试在自定义类中覆盖此方法。
【讨论】:
populate(); 方法是包私有的!
为什么要将离线页面限制设置为零?
将其设置为 1 允许 android 抢先将下一个视图加载到视图寻呼机,从而改善用户体验并加快加载时间。
如果您必须将其设置为零,则创建一个扩展 ViewPager 的自定义视图分页器类,然后覆盖 setOffScreenPageLimit 方法
【讨论】: