AddToBackstack does not work when replacing fragments
I am having a problem where I call addToBackStack
into my fragment when it is replaced, but when I click back to return to that fragment it does not come back, it just closes my application.
Fragment fragmentWebView = new MyWebView();
transaction.replace(R.id.content_frame, fragmentWebView);
transaction.addToBackStack(null);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.commit();
Am I doing something wrong here? everything looks good to me.
+3
source to share
3 answers
I'm not sure if this is related, but you shouldn't be building your snippet with new
, see fooobar.com/questions/14216 / ...
0
source to share
You have to call addToBackStack (MyWebView.class.getName ()); and it is recommended to check if your fragment exists. The closing transaction could be something like this:
Fragment fragmentWebView = getFragmentManager().findFragmentByTag(MyWebView.class.getName());
if (fragmentWebView == null)
fragmentWebView = new MyWebView();
transaction.replace(R.id.content_frame, fragmentWebView, MyWebView.class.getName());
transaction.addToBackStack(MyWebView.class.getName());
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.commit();
Now you can identify your fragment using the (MyWebView.class.getName ()) tag. Hope this helps you!
0
source to share