gpt4 book ai didi

android - 避免在 FragmentTabHost 选项卡切换中重新加载数据

转载 作者:行者123 更新时间:2023-11-29 01:39:50 25 4
gpt4 key购买 nike

我有两个使用 FragmentTabHost 的 fragment 的选项卡式布局。在选项卡选择中,每个 fragment 都会重新创建(onCreateView、onActivityCreated...再次调用)。我在第一个 fragment 中加载数据(在 onCreateView 中)移动到其他选项卡,当我回到第一个 fragment 时,整个 fragment 被重新创建,因此数据再次被加载。我不想在选项卡切换时一次又一次地加载数据。我应该怎么办?

我尝试附加和分离 fragment 而不是添加/替换,但所有 fragment 生命周期方法仍然在选项卡切换时一次又一次地被调用。实现期望行为的正确方法是什么?

最佳答案

您应该隐藏和显示您的 fragment 。否则,如果您添加/替换,将调用 onCreateView。因此,如果 fragment 已经存在,请使用显示和隐藏。

在您的 onTabChanged 中,请添加以下代码。

if (mLastTab != newTab) {
FragmentTransaction ft = this.getSupportFragmentManager()
.beginTransaction();
if (mLastTab != null) {
if (mLastTab.fragment != null) {
ft.hide(mLastTab.fragment);
}
}
if (newTab != null) {
if (newTab.fragment == null) {
newTab.fragment = Fragment.instantiate(this,
newTab.clss.getName(), newTab.args);
ft.add(android.R.id.tabcontent, newTab.fragment, newTab.tag);
} else {
ft.show(newTab.fragment);
}
}

关于android - 避免在 FragmentTabHost 选项卡切换中重新加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25423873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com