我有這樣如何刪除當前碎片中除當前碎片和第一碎片之外的所有碎片?
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顯示數字
不是真的看中了,但對我來說,當至少工作我不得不做類似的事情。