片段backStack不能正常工作

时间:2015-08-07 12:46:18

标签: android android-fragments fragment-backstack

在我的应用程序中我有一个导航抽屉.HomeActivity持有导航抽屉。在HomeActivity我调用一个片段说AI希望这个片段保留在backstack中。然后当用户从导航菜单中选择任何其他选项时不应该记录在backstack.But我的代码它仍然在后台。请帮助我

代码

public static void replaceFragment(FragmentActivity activity, Fragment fragment, boolean addToBackStack) {


        try {
            String backStateName = fragment.getClass().getName();
            String fragmentTag = backStateName;
            FragmentManager manager = activity.getSupportFragmentManager();
            boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0);
            if (!fragmentPopped && manager.findFragmentByTag(fragmentTag) == null) {
                FragmentTransaction ft = manager.beginTransaction();
                ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right);


                ft.replace(R.id.frag_container, fragment, fragmentTag);


                if (addToBackStack) {
                    ft.addToBackStack(backStateName);
                }
                ft.commit();
            }
        } catch (Exception e) {

            e.printStackTrace();
        }
    }

来自HomeActivity的代码以启动片段A

CommonFunctions.replaceFragment(this, new HomeFrag(), true);

用户从导航栏中选择时的代码

CommonFunctions.replaceFragment(this, new ProfileFrag(), false);

0 个答案:

没有答案