Back Press Fragments Issue In Android
I have four Fragments: A, B, C, D. Now I am moving from A --> B so my code will be from A to B getActivity().getSupportFragmentManager() .beginTransaction() .replace(R.
Solution 1:
You have to provide same String value for addToBackStack for single Stack.
.replace(R.id.content_frame, newB())
.addToBackStack("stack")
.replace(R.id.content_frame, newC())
.addToBackStack("stack")
Solution 2:
Here is the code of BackStackChangedListener.
publicstaticvoidperformNoBackStackTransaction( final FragmentManager fragmentManager, String tag, Fragment fragment) {
finalintnewBackStackLength= fragmentManager.getBackStackEntryCount() +1;
fragmentManager.beginTransaction()
.replace(R.id.content_frame, fragment, tag)
.addToBackStack(tag)
.commit();
fragmentManager.addOnBackStackChangedListener(newFragmentManager.OnBackStackChangedListener() {
@OverridepublicvoidonBackStackChanged() {
intnowCount= fragmentManager.getBackStackEntryCount();
if (newBackStackLength != nowCount) {
// we don't really care if going back or forward. we already performed the logic here.
fragmentManager.removeOnBackStackChangedListener(this);
if ( newBackStackLength > nowCount ) { // user pressed back
fragmentManager.popBackStackImmediate();
}
}
}
});
}
Post a Comment for "Back Press Fragments Issue In Android"