Loading Fragments

Loading fragments can be tricky in certain scenarios.

But if you use the following code snippet to load fragments in your container, life becomes much simpler with this code.

public void loadFragment(Fragment fragment, boolean boolAddToBackStack, AppCompatActivity mActivity) {
    FragmentManager fragmentManager = mActivity.getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    String backStateName = fragment.getClass().getName();
    boolean fragmentPopped = fragmentManager.popBackStackImmediate(backStateName, 0);
    if (!fragmentPopped)  {
        //fragment not in back stack, create it.
        fragmentTransaction.replace(R.id.frame_layout_container, fragment);
        if (boolAddToBackStack)  {
            fragmentTransaction.addToBackStack(backStateName);
        }
        fragmentTransaction.commit();
    }
}

Method loadFragment takes three parameters, they are:

  • Fragment fragment: Target fragment to be loaded
  • boolean boolAddToBackStack: If you want your fragment to be shown on back pressed send this flag as true
  • AppCompatActivity mActivity: Current activity instance

Usage

CameraFragment cameraFragment = new CameraFragment();
loadFragment(cameraFragment, true, this);

Source code

Download complete source code from Github repository