我已經得到了我的初始化,並承諾像這樣兩個片段....Android的碎片popFromBackstack()只能使用一次
FragmentA
getFragmentManager().beginTransaction()
.add(R.id.filter_fragment, fragmentA)
.commit();
FragmentB
getFragmentManager().beginTransaction()
.replace(R.id.filter_fragment, fragmentB)
.addToBackStack(null)
.commit();
FragmentA在應用程序啓動時創建並顯示,但直到用戶單擊按鈕時才顯示FragmentB。
- 片段A加載的應用程序,我有是這樣的問題......開始
- 用戶操作創建片段B;片段B顯示成功。
- 用戶按下設備後退按鈕,調用
getFragmentManager.popBackStack()
。片段A成功顯示。 - 用戶操作再次創建碎片B;片段B顯示成功。
用戶按設備後退按鈕,調用
getFragmentManager.popBackStack()
。 應用程序崩潰並出現以下錯誤:java.lang.IllegalStateException: Fragment already added: FragmentB{3c73b216 #2 id=0x7f0f00c6}
我一直在拉我的頭髮最後一天試圖找出爲什麼交易和彈出堆棧中一個工作時間,但崩潰第二次。我嘗試過使用各種組合add()
,replace()
,remove()
等,並且它只會變得更糟。我目前崩潰的執行情況是最近的。
發佈更多代碼以更好地解釋您的問題.. – Akhil