请帮助我解决我的问题。
I have MainActivity
与框架布局。我想将一些片段替换到框架布局中。现在我遇到一个问题,它是:
1)我创建了片段A并将其放入框架布局中。片段 A 称为onCreateView
...etc.
2)然后我创建了片段B并将其放入布局...片段A被放入backstack并调用onPause()
(不叫onDeattach()
, onDestroy
...)
3)我按下后退按钮。片段 A 是从 backstack 获取的,但它调用了onCreateView()
再次。此操作使我的应用程序出现了一些其他问题。
所以我的问题是如何将片段 A 存储在 backstack 中并且它不会重新创建视图。
这是用于更改片段的方法:
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;
}
}
感谢并抱歉我提出了不好的问题,我的英语不好。
在这里查看我的完整帖子动态更改片段选项卡主机内的片段? https://stackoverflow.com/questions/18120510/dynamically-changing-the-fragments-inside-a-fragment-tab-host/19859871#19859871
至于您重新加载的问题(我假设),您可以做一些类似下面提到的事情:
(1) 初始化一个布尔值
boolean android_hacker = false;
(2) 现在假设您需要获取数据并使用列表视图创建一些视图。现在在这个阶段设置“android_hacker = true;”获取所有数据后。
(3) 现在,当您再次回到同一个片段时,说“FragmentA”,然后如上所述检查 OnCreateView 上的值。
if(android_hacker != true){
new GoAsyncTask().execute();
}else{
// Perform stuff U need
}
就是这样。希望对某人有所帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)