FragmentManager清理.addToBackStack

时间:2019-05-14 19:44:17

标签: java android navigation fragmentmanager

反正我可以使它更清洁一点吗?我知道当query =“”我在主菜单中,因此返回应该关闭该应用程序。

        if (query == "") {
            fragmentManager.beginTransaction()
                    .replace(containerId, fragment, tag)
                    .commitAllowingStateLoss();
        } else {
            fragmentManager.beginTransaction()
                    .replace(containerId, fragment, tag)
                    .addToBackStack(null)
                    .commitAllowingStateLoss();
        }

2 个答案:

答案 0 :(得分:0)

是的,您可以一步一步地清除活动中的片段,这是代码...

   public static void clearBackStack() {
        FragmentManager fm = mainActivity.getSupportFragmentManager();
        for (int i = 0; i < fm.getBackStackEntryCount(); ++i) {
             fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        }
    }

答案 1 :(得分:0)

好的,这对我来说更好。虽然我很欣赏上面的答案。

    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.replace(containerId, fragment, tag);
     if (query != "") {
         transaction.addToBackStack(null);
     }
     transaction.commitAllowingStateLoss();