[英]Fragment backstack and replace
I have 2 fragments A
and B
.我有 2 个片段
A
和B
。 I added fragment B
from fragment A
(A->B)
with addToBackStack()
.我使用
addToBackStack()
从片段A
(A->B)
添加了片段B
Now when I am in fragment B
and press back everything is OK and return to the A
.现在,当我在片段
B
并按回时一切正常并返回A
。
But when I am in fragment C
I want to display fragment B
if it is existed in fragment manager by checking getFragmentManager().findFragmentByTag("");
但是当我在片段
C
时,如果片段管理器中存在片段B
我想通过检查getFragmentManager().findFragmentByTag("");
来显示它getFragmentManager().findFragmentByTag("");
then I replace
this fragment.然后我
replace
这个片段。
The problem is the backstack
not work in this situation.问题是
backstack
在这种情况下不起作用。 I mean whenever I press back the fragment A is not shown.我的意思是,每当我按回时,片段 A 都不会显示。 How can I preserve that
backstack
too?我怎样才能保留那个
backstack
?
This is the code i am using这是我正在使用的代码
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.popBackStack(fragment.toString(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
FragmentTransaction tx = fragmentManager.beginTransaction();
Log.v("on calling fragment", fragment + "==" + fragment.toString());
tx.replace(R.id.fl_main, fragment).addToBackStack(fragment.toString());
This give different particular backstack string to each fragment being replaced.这为每个被替换的片段提供了不同的特定 backstack 字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.