【问题标题】:Sliding Tab is reloading Fragment after changing Tab更改选项卡后滑动选项卡正在重新加载片段
【发布时间】:2016-04-22 08:58:53
【问题描述】:

我将这些类用于我的选项卡:

https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabLayout.java

https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabStrip.java

我有 3 个标签:Tab1 Tab2 和 Tab3。

在 Tab3 中,我从手机加载联系人并将它们添加到我的 ListView。这需要一段时间才能成功加载(200 个联系人)。

现在我的问题是:当我将 Tab 从 Tab3 更改为 Tab1 时,加载过程又开始了。所以 Fragment 再次从零加载。

所以每次我切换到 Tab 1 并返回到 Tab 3 时,都必须重新加载所有内容。有人有想法找到解决方案吗?如何防止此 Fragment 重新加载?

@Override
 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.tab_friends, container, false);

    LV_Contacts = (ListView)v.findViewById(R.id.LV_Contacts);
    if(adapter_contacts == null)
        new load_contacts().execute();



    return v;
}

编辑:当我从 Tab3 更改为 Tab2 时,它工作正常。它只是继续,但是当我转到 Tab1 时,一切都从头开始,它再次构建 Listview

【问题讨论】:

    标签: android tabs sliding


    【解决方案1】:

    你只需要添加这个

    viewPager.setOffscreenPageLimit(3);
    

    更多详情请阅读文档

    http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit(int)

    【讨论】:

    • 谢谢老兄!这就是我正在寻找的方法:)
    • 是的,viewpager 的默认值是视图中的片段,一个之前,一个之后。这就是你看到这种行为的原因。这是标准的。如果您决定重新排列选项卡或在限制范围内向片段添加更多 UI 元素/功能,并且如果您的 API 级别较低(旧设备 = 较慢 CPU一般),所以一些用户会遇到严重的延迟。
    • 感谢弗兰克的建议。看起来开发人员应该关注它^^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多