Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove only fragment when back pressed

I create sample app to show some data to user when user start specific activity and click on specific button the app start new fragment (only fragment added to activity for now ) my problem is when user click back the fragment and the activity removed and go to parent activity. using this code to do that

android.support.v4.app.FragmentManager fragmentManager = ((FragmentActivity) context).getSupportFragmentManager();
fragmentManager.popBackStack();

also I use the same code in another action when user click in specific button fragment and back correctly.
Can anyone help me to solve that

like image 859
Azak Avatar asked Aug 11 '16 10:08

Azak


People also ask

How do you detach a fragment?

To detach an added Fragment from an Activity, you use: getFragmentManager(). beginTransaction(). detach(mFragment). commit().

How do you stop a fragment from recreating?

Calling setRetainInstance(true) will prevent the Fragment from being re-created.


1 Answers

Add fragments to back stack when create them and override onBackPressed in your activity.

To add fragment

FragmentManager mFragmentManager = ((FragmentActivity) context).getSupportFragmentManager();
FragmentTransaction ft = mFragmentManager.beginTransaction();
ft.addToBackStack("tag of fragment");
ft.add("your container id", fragment);
ft.commit();

onBackPress

@Override
public void onBackPressed() {
    if (mFragmentManager.getBackStackEntryCount() > 0)
       mFragmentManager.popBackStackImmediate();
    else super.onBackPressed();
}
like image 125
faranjit Avatar answered Oct 14 '22 14:10

faranjit