我有一個疑難問題,我無法在任何地方找到解決方案。addToBackStack不起作用,關閉活動而不是彈出碎片
當我按下後退按鈕時,我的應用程序不會返回到上一個片段,而是關閉活動。
我有一個活動,顯示4片段:[1],[2],[3],[4]。我可以在動作欄之間切換前3個片段,我不想將它們添加到後端堆棧。
片段[4]是在片段[3]中選擇的項目的詳細視圖。當我按[4]時,我想返回片段[3],而不是關閉應用程序。
的過渡以這種方式由活動,其中片段放置完成:
private void replaceFragment(Fragment fragment, boolean toBackStack){
if(fragment != null){
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.container, fragment);
if(toBackStack)
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
}
其中toBackStack是除了當過渡是從始終爲假[3]〜[4]。
如果我在每個轉換中都傳遞給BackStack爲true,則該活動無論如何都會關閉。
因此,而不是在活動中保持狀態,它可能會更好地做到這一點onBackPressed() if(getFragmentManager ().getBackStackEntryCount()> 0) getFragmentManager()。popBackStack(); – toidiu