gpt4 book ai didi

android - 从backstack中获取的fragment,再次调用onCreateView()

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:40 25 4
gpt4 key购买 nike

请帮我解决我的问题。

我有带有框架布局的 MainActivity。我想将一些 fragment 替换到框架布局中。现在我遇到了一个问题,它是:

1) 我创建 fragment A 并将其放入框架布局。 fragment A 调用了 onCreateView...等等

2) 然后我创建了 fragment B 并将其放入布局... fragment A 被放在 backstack 上,它调用了 onPause()(不是调用 onDeattach()onDestroy...)

3) 我按下了后退按钮。 Fragment A 是从 backstack 中获取的,但它再次调用了 onCreateView()。此操作使我的应用程序有一些其他问题。

所以我的问题是如何将 fragment A 存储在后台堆栈中并且它不会重新创建 View 。

这是用于更改 fragment 的方法:

public static void setContent(FragmentManager managerFragment, Fragment detailFragment) {
if (managerFragment != null) {
if(lastFragment==null && detailFragment instanceof HomeVer3Fragment ||
(lastFragment!=null && detailFragment instanceof HomeVer3Fragment && lastFragment instanceof HomeVer3Fragment)){
return;
}
String tag=detailFragment.getClass().getName();
managerFragment.popBackStackImmediate(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE);
FragmentTransaction ft = managerFragment.beginTransaction();
ft.replace(R.id.content_frame, detailFragment);
ft.addToBackStack(tag);
ft.commit();
lastFragment = detailFragment;
}
}

感谢并抱歉我的错误问题,我的英语不好。

最佳答案

在这里查看我的完整帖子 Dynamically changing the fragments inside a fragment tab host?

至于你的重新加载问题(我假设)你可以做一些下面提到的事情:

(1) 发起 bool 值say

boolean android_hacker = false;

(2) 现在假设您需要获取数据并使用 ListView 创建一些 View 。现在在这个阶段设置“android_hacker = true;”获取所有数据后。

(3) 现在,当您再次回到同一个 fragment 时说“FragmentA”,然后检查 OnCreateView 上提到的值..

if(android_hacker != true){
new GoAsyncTask().execute();
}else{
// Perform stuff U need
}

就是这样。希望对大家有帮助

关于android - 从backstack中获取的fragment,再次调用onCreateView(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20488497/

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