Leo*_*yen 7 android fragment back-stack
请帮我解决我的问题.
我有MainActivity一个framelayout.我想将一些片段替换为framelayout.现在我正在鼓励一个问题,它是:
1)我创建并将片段A放到framelayout.片段A叫onCreateView...等.
2)然后我创建并将片段B放到布局中......片段A被放在后台上并且它被调用onPause()(不叫onDeattach(),onDestroy......)
3)我按下了按钮.片段A是从后端堆栈获得的,但它onCreateView()再次调用.此操作使我的应用程序还有其他一些问题.
所以我的问题是如何在backstack中存储片段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;
}
}
Run Code Online (Sandbox Code Playgroud)
感谢和抱歉我的坏问题,我的英语不太好.
在这里查看我的完整帖子动态更改片段选项卡主机内的片段?
至于您重新加载的问题(我假设),您可以做一些类似下面提到的事情:
(1) 初始化一个布尔值
boolean android_hacker = false;
Run Code Online (Sandbox Code Playgroud)
(2) 现在假设您需要获取数据并使用列表视图创建一些视图。现在在这个阶段设置“android_hacker = true;” 获取所有数据后。
(3) 现在,当你再次回到同一个片段时,说“FragmentA”,然后检查 OnCreateView 上的值,如上所述。
if(android_hacker != true){
new GoAsyncTask().execute();
}else{
// Perform stuff U need
}
Run Code Online (Sandbox Code Playgroud)
就是这样。希望对某人有所帮助
| 归档时间: |
|
| 查看次数: |
4518 次 |
| 最近记录: |