【问题标题】:Android: limit fragments loading with a viewPagerAndroid:使用 viewPager 限制片段加载
【发布时间】:2012-11-26 07:38:58
【问题描述】:

我有 3 个片段由 FragmentPagerAdapter 管理,设置为 viewPager。

我想一个一个地加载fragment,但是在执行FragmentActivity的onCreate方法时,执行的是前2个fragment(onCreateView方法)。

我尝试使用 setOffscreenPageLimit 方法限制片段加载,但没有任何改变。

mPagerAdapter =  new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
pager = (ViewPager) super.findViewById(R.id.tabviewpager);
pager.setOffscreenPageLimit(0);
pager.setAdapter(this.mPagerAdapter);

感谢您的帮助。

【问题讨论】:

    标签: android android-fragments android-viewpager fragmentpageradapter


    【解决方案1】:

    OffscreenPageLimit 的最小值在ViewPager source code 中设置为1

    private static final int DEFAULT_OFFSCREEN_PAGES = 1;
    ....
    public void setOffscreenPageLimit(int limit) {
        if (limit < DEFAULT_OFFSCREEN_PAGES) {
            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();
        }
    }
    

    【讨论】:

    • 谢谢。有没有其他方法可以在不使用 setOffscreenPageLimit 的情况下实现?
    • 片段真的需要一个一个加载吗?如果是这样,您可能希望将ViewPager 以外的其他内容与Adapter 结合使用。如果您真的想要ViewPager,您可以在 ViewPager 上使用OnPageChangeListener 并等待Fragment 可见,以执行您需要的任何操作。您只需要在onCreateView 中进行一些基本的初始化,然后在Fragment 变得可见时进行密集的工作。
    • 感谢您的宝贵帮助!我将尝试使用 OnPageChangeListener。
    猜你喜欢
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多