java - 仅在第一次显示时加载选项卡(Fragment)一次并保留以供以后使用

标签 java android android-viewpager material-design android-tabs

我可以使用 ViewPagerFragments 显示为选项卡。

我想要实现的是,

  1. 只有当选择 fragment 作为当前选项卡时,才应加载 fragment 的内容。
  2. 一旦显示并加载了一个选项卡,那么每当我返回同一个选项卡时,它就会被保留,即不会再次加载。

我知道保留我可以使用以下内容的所有选项卡,

viewPager.setOffscreenPageLimit(4); // 4 is total number of tabs

但是当我这样做时,它会在开始时加载所有 4 个选项卡,即在开始时调用所有 4 个选项卡的 onCreateView 。如何才能使其仅在第一次显示时加载,然后保留以供以后使用。

附注Twitter 和 Facebook Android 应用程序中存在此功能。

最佳答案

要保留 fragment ,请使 View 分页器适配器扩展 FragmentPagerAdapter 而不是 FragmentStatePagerAdapter。 fragment 将保留在内存中,因此无需设置页限制。要触发必须在用户可见性时加载的内容,只需如上所述扩展 setUserVisibleHint 即可。

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser && myData == null) {
        loadData()
    }
}

关于java - 仅在第一次显示时加载选项卡(Fragment)一次并保留以供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49953641/

相关文章:

android - 如何将Activity转为Fragment,使用ViewPager实现滑动?

java - 添加到静态 ArrayList 只是覆盖第一个元素

java - 删除随机生成的 UUID 中的 "-"有多安全?

android - imageview android的波浪动画

android - 有没有等同于#ifdef WIN32 的#ifdef ANDROID

android - 使用 Glide 和 SimpleTarget 将图像随机加载到 View 寻呼机中

带抽屉导航的 Android 布局

java - IntelliJ IDEA : Can I specify which class is in "secure context"

java - 如果一行中结果不为空,则附加到字符串? (干净/好看)

java - Android - 从数组动态更改 ImageView