繁体   English   中英

第一次显示时仅加载一次标签(片段),并将其保留以备后用

[英]Load tab (Fragment) only once when it is shown for the first time and retain it for later use

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

我想要实现的是

  1. 仅当选择片段作为当前选项卡时,才应加载片段的内容。
  2. 显示并加载选项卡后,每当我回到相同的选项卡时,该选项卡都会保留,即不再加载。

我知道保留所有标签,可以使用以下标签,

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

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

PS此功能存在于Twitter和Facebook Android应用程序中。

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

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

android片段确实提供了以下方法

@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
    }

当片段仅在屏幕上可见时,将调用此方法。 因此,无论您在onCreateView()中执行的代码如何,都可以使用此方法进行管理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM