android - ViewPager.setOffscreenPageLimit(0) 无法按预期

我在 ViewPager 实例中使用的 fragment 非常耗费资源,所以我只想一次加载一个。当我尝试以下操作时:

mViewPager.setOffscreenPageLimit(0);
mViewPager.setAdapter(mPagerAdapter);

我的 FragmentStatePagerAdapter.getItem(int position) 覆盖函数被调用了 3 次,这就是我调用 mViewPager.setOffscreenPageLimit(1) 时发生的情况。我希望它只被调用一次,因为我指定了 0 个屏幕外页面。

我相信我正确调用了所有内容,因为如果我调用 mViewPager.setOffscreenPageLimit(2)FragmentStatePagerAdapter.getItem(int position) 会被调用 5 次会期望。

ViewPager 是否需要至少 1 个屏幕外页面,或者我在这里做错了什么?

最佳答案

我发现最好的方法是setUserVisibleHint
将此添加到您的 fragment 中

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
        // load data here
    }else{
       // fragment is no longer visible
    }
}

关于android - ViewPager.setOffscreenPageLimit(0) 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10073214/

相关文章:

android - 以编程方式获取设备的 Android API 级别?

android - 如何调试签署发布的apk?

android - 在 Android 中通过 Canvas 创建一个空位图并进行绘图

android - 将 largeHeap 设置为 true 有什么好处?

android - 如何查看 Google Play 服务版本?

android - 是否可以更改android单选按钮组中的单选按钮图标

android - post方法到底是做什么的?

android - ListView addHeaderView 导致位置加一?

android - 从 android 图库中选择多张图片

android - 如何在 Android 中更改代理设置(尤其是在 Chrome 中)