0

I have 2 fragments and 1 activity.

I am calling to remove the 2nd fragment from the 1st fragment via the activity like this:

Fragment 1:

FragmentManager manager = getActivity().getSupportFragmentManager();
if(manager.findFragmentByTag("AdFragment") != null){
      manager.beginTransaction().remove(manager.findFragmentByTag("AdFragment")).commit();
      Log.d("BACK", "Removed AdFragment");
}

Now when I do back press my onBackPressed method in the activity still finds the just removed 2nd fragment:

Activity:

@Override
public void onBackPressed() {
    FragmentManager manager = getSupportFragmentManager();
    AdFragment adFrag = (AdFragment) manager.findFragmentByTag("AdFragment");
    if(adFrag != null){
        Log.d("BACK", "Found AdFragment from backstack");
    }
}

The AdFragment is found even when I remove the fragment in Fragment 1. What am I misunderstanding? Thanks!

Here is the moment is start the 2nd fragment from the activity:

 public void openAdFragment(View v){
    final AdFragment adFragment = new AdFragment();
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.add(R.id.adFragmentContainer, adFragment, "AdFragment").addToBackStack("AdFragment").commit();
}

Here is the code for starting the first fragment:

 android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, buildingFragment, "BUILDINGPAGE");
KasparTr
  • 2,328
  • 5
  • 26
  • 55

0 Answers0