我有这样如何删除当前碎片中除当前碎片和第一碎片之外的所有碎片?
F1 -> F2 -> F3 -> F4 -> F5
片段堆栈现在我需要删除F2,F3,F4片段。
我需要如果我按F5片段的按钮,它应该去F1。
注意:我不会更改活动的片段片段。从片段更改片段。
我有这样如何删除当前碎片中除当前碎片和第一碎片之外的所有碎片?
F1 -> F2 -> F3 -> F4 -> F5
片段堆栈现在我需要删除F2,F3,F4片段。
我需要如果我按F5片段的按钮,它应该去F1。
注意:我不会更改活动的片段片段。从片段更改片段。
关于销毁Fragment
F5
明确Back Stack
直到F2
。
尝试这样:
public
方法在MainActivity
:
public void clearBackStackInclusive(String tag) {
getSupportFragmentManager().popBackStack(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
现在
在F5
片段:
@Override
public void onDestroy() {
super.onDestroy();
((MainActivity)getActivity()).clearBackStackInclusive("tag"); // tag (addToBackStack tag) should be the same which was used while transacting the F2 fragment
}
您可以使用标志管理任务。例如,这将清除家中的所有活动。
Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent)
所以如果你开始4级或5个以上的任务在首页的活动,你可以调用的第五名和回家。
我期待着它的一个片段版本,但它取决于你管理任务的方式。
编辑
我发现它的片段:
FragmentManager.popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE)
这会弹出所有状态到一个已命名的。
那么就可以实现这种行为,用F1来管理每一个想法。 假设你正在做一个过程,每一步都取决于最后一个答案。所有你需要做的就是每回答你的回答,而不是让F1开启下一步。 例如:
1°在F1中,你说你要显示一个人的电话号码
2°F1呼叫F2是你搜索一个名字。当用户选择一个名字F2返回到F1中的名称,并关闭
3°F1将被命名为比F2返回并调用F3与该名称F3显示数字
不是真的看中了,但对我来说,当至少工作我不得不做类似的事情。