In my app i have a navigation drawer.The HomeActivity holds the navigation drawer.In HomeActivity i am calling a fragment say A.I want this fragment to remain in the backstack.Then when the users selects any other options from the navigation menu that should not be recorded in to the backstack.But with my code it remains in the backstack.Please help me out
Code
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();
}
}
Code from HomeActivity to start fragment A
CommonFunctions.replaceFragment(this, new HomeFrag(), true);
Code when user selects from nav drawer
CommonFunctions.replaceFragment(this, new ProfileFrag(), false);