【问题标题】:How to load only one page at time in view pager如何在视图寻呼机中一次只加载一页
【发布时间】:2016-06-23 12:02:01
【问题描述】:

我想一次只加载一个页面。

viewpager.setOffscreenPageLimit(0);

不工作。

【问题讨论】:

标签: android


【解决方案1】:

您无法使用标准的 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(); 方法是包私有的!
  • @mallaudin,反射可以调用任何方法,包括私有和包可见。
  • 是的,但这可能很脆弱。
  • @rams 不要尝试在 cmets 中提问。如果您有问题 - 提出问题
【解决方案2】:

为什么要将离线页面限制设置为零?

将其设置为 1 允许 android 抢先将下一个视图加载到视图寻呼机,从而改善用户体验并加快加载时间。

如果您必须将其设置为零,则创建一个扩展 ViewPager 的自定义视图分页器类,然后覆盖 setOffScreenPageLimit 方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-18
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    相关资源
    最近更新 更多