【问题标题】:I want to disable preloading next page in a ViewPager我想在 ViewPager 中禁用预加载下一页
【发布时间】:2016-08-26 17:28:08
【问题描述】:

如何禁用 ViewPager 中的预加载?

我有一个 ViewPager,每页有 3 个页面片段。所以我不想加载下一页和上一页。如何禁用此行为?

我试过了

viewPager.setOffscreenPageLimit(1)

但这不起作用。

试过了

@Override
public void setMenuVisibility(final boolean visible) {
    super.setMenuVisibility(visible);
    if (visible) {
        // do something nice here
    }
}

但是下一个片段中的 RecyclerView 会显示这个

RecyclerView:没有附加适配器;跳过布局

为我的英语道歉

【问题讨论】:

  • 很遗憾无法正常工作,我只想加载 1 个(仅当前)片段而不是 2 个
  • 我认为您不能禁用下一页的预加载,因为 ViewPager 就是这样设计的。我在这里能想到的唯一选择:当您加载页面时,检查片段是否为“当前”。如果是,则加载,如果不是,则忽略该调用,不执行任何操作。

标签: android android-fragments android-viewpager android-recyclerview


【解决方案1】:

屏幕外限制的最小值为 1。 您可以做的是,使用片段中的“setUserVisibleHint”方法自行处理,例如。

public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser)
           // execute your data loading logic.
}

【讨论】:

  • 我花了大约 4 个小时试图解决这个问题,你拯救了我的一天!谢谢
【解决方案2】:

我认为 ViewPager 不可能。要在两个页面之间滑动,两个页面都应该可见。 (应该预加载)。您可以尝试自己的视图寻呼机在不预加载的情况下滑动。还有Check This

【讨论】:

    【解决方案3】:

    这是一个示例 Android 应用程序,它使用两种新方法扩展了 Fragment 生命周期:onResumeViewPage() 和 onPauseViewPage(),当用户在 Fragment 之间滑动时调用它们。如果您将代码放在 onResumeViewPage() 中,它应该可以工作。

    请参阅:BitBucket 中的Slider Android Application

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      相关资源
      最近更新 更多