请帮我解决我的问题。
我有MainActivity
的framelayout。我想将一些片段替换为framelayout。现在我正在鼓励一个问题,那就是:
1)我创建并将片段A放到framelayout。片段A称为onCreateView
......等等。
2)然后我创建并将片段B放到布局中......片段A放在后台上,它叫onPause()
(不叫onDeattach()
,onDestroy
...)< / p>
3)我按下了按钮。片段A是从后台堆栈获得的,但它再次调用了onCreateView()
。这个动作使我的应用程序有另外一些问题。
所以我的问题是如何在反叠堆中存储片段A,它不会重新创建视图。
这是用于更改片段的方法:
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;
}
}
感谢和抱歉我的问题,我的英语不太好。
答案 0 :(得分:2)
在此处查看我的完整帖子Dynamically changing the fragments inside a fragment tab host?
到目前为止你的重装问题(我假设)你可以做一些像下面提到的那样的事情:
(1)启动布尔值,说
boolean android_hacker = false;
(2)现在说你需要使用列表视图获取数据并创建一些视图。现在在这个阶段设置“android_hacker = true;”在您获取所有数据之后。
(3)现在,当U再次回到相同的片段时说“FragmentA”,然后检查OnCreateView上的值,如上所述..
if(android_hacker != true){
new GoAsyncTask().execute();
}else{
// Perform stuff U need
}
就是这样。希望它有所帮助