这是从backstack得到的片段,再次拨打onCreateView() [英] The fragment which is got from backstack, call onCreateView() again
问题描述
请帮我解决我的问题。
我 MainActivity
用的FrameLayout。我想更换一些碎片进入的FrameLayout。现在我encounering一个问题,它是:
I have MainActivity
with a framelayout. I want to replace some fragments into the framelayout. Now I am encounering an issues, it's:
1)我创建并把片段A至的FrameLayout。片段一个名为 onCreateView
...等。
1) I created and put fragment A to framelayout. Fragment A called onCreateView
...etc.
2)然后我创建并把B片段布局......片段A被提上backstack并呼吁的onPause()
(不叫 onDeattach()
,的onDestroy
...)
2) Then I created and put fragment B to layout... Fragment A was put on backstack and it called onPause()
(not called onDeattach()
, onDestroy
...)
3)I pressed后退按钮。片段A从backstack了,但它叫 onCreateView()
一次。这个动作让我的应用程序有一些其他的问题。
3) I pressed back button. Fragment A was got from backstack, but it called onCreateView()
again. This action make my app has some another issues.
所以我的问题是如何在碎片中的存储backstack,它不重建视图。
So my question is how to store fragment A in backstack and it don't recreate view.
这是被用来改变片段的方法:
This's the method that was used to change 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;
}
}
感谢和抱歉,我不好的问题,我的英语不是很好。
Thank and sorry for my bad question, my english is not well.
推荐答案
检查出我的整个后在这里<一个href=\"http://stackoverflow.com/questions/18120510/dynamically-changing-the-fragments-inside-a-fragment-tab-host/19859871#19859871\">Dynamically改变片段片段选项卡里面的主机?
check out my complete post over here Dynamically changing the fragments inside a fragment tab host?
至于你重装(我假设),那么你可以做一些下述事情的问题:
As far your problem of reloading ( I assume ) you can do some thing like undermentioned:
(1)启动一个布尔值,说
(1) Initiate a Boolean value say
boolean android_hacker = false;
(2)现在说ü需要获取数据,并使用列表视图的一些看法。现在,在这个阶段集中android_hacker = TRUE;你已经获取的所有数据后。
(2) Now say U need to fetch data and create some view using list view. Now at this stage set "android_hacker = true;" after you have fetched all data.
(3)现在U时再回来相同的片段说:碎裂,然后点击OnCreateView检查值提到的。
(3) Now when U again come back to same fragment say "FragmentA" then check value on OnCreateView as mentioned ..
if(android_hacker != true){
new GoAsyncTask().execute();
}else{
// Perform stuff U need
}
就是这样。希望它可以帮助一些一
That's it. Hope it helps some one
这篇关于这是从backstack得到的片段,再次拨打onCreateView()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!