gpt4 book ai didi

android - 如何在android中保存 fragment 状态?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:38 26 4
gpt4 key购买 nike

我有一个 HomeActivity,我从那里调用 fragment 列表。在 HomeActivity 中,我有加载所有 fragment 的侧边菜单。

现在,在此列表中,我有一个名为 HomeFragment 的 fragment ,它使用网络服务显示带有数据的 Google map 。

我想要的是我只想加载 map 数据一次(第一次)加载 fragment ,而不是每次单击侧边菜单或从任何其他 fragment 进入时。

我的 HomeFragment 或任何其他 fragment 是一次加载的,而不是每次都加载。

最佳答案

您可以隐藏/显示 fragment 。无需更换、拆卸。例如,我有 2 个 fragment FragmentFeed 和 FragmentNotification,我们可以隐藏/显示或添加 fragment 。

处理点击菜单:

if (tabId.equals(AppConstants.FEED)) {
pushFragments(tabId, getFragmentFeed());
} else if (tabId.equals(AppConstants.NOTIFICATION)) {
pushFragments(tabId, getFragmentNotification());
}

处理显示/隐藏和添加 fragment :

public void pushFragments(String tag, Fragment fragment) {

FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();


if (manager.findFragmentByTag(tag) == null) {
ft.add(R.id.realtabcontent, fragment, tag);
}

Fragment fragmentFeed = manager.findFragmentByTag(TAG_FEED);
Fragment fragmentNoti = manager.findFragmentByTag(TAG_NOTIFICATION);

// Hide all Fragment
if (fragmentFeed != null) {
ft.hide(fragmentFeed);
}
if (fragmentNoti != null) {
ft.hide(fragmentNoti);
}

// Show current Fragment
if (tag == TAG_FEED) {
if (fragmentFeed != null) {
ft.show(fragmentFeed);
}
}
if (tag == TAG_NOTIFICATION) {
if (fragmentNoti != null) {
ft.show(fragmentNoti);
}
}



ft.commitAllowingStateLoss();
}

关于android - 如何在android中保存 fragment 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42434392/

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