I'm developing an android app. I have an actionbar in tab navigation mode, and three tabs that call fragments to be replaced in the frameview container.
My problem is: if the user generates a backstack while in one tab and then switches to another tab, if the back button is pressed in this state- then the backstack is popped, but the tab doesn't change, which leads to overlapping fragments (backstack fragment which belongs to Tab1 is popped/added, but Tab2 is still selected and so is its fragment).
Is there a way to make actionbar tabs react to the back button in a way that will parallel the fragment backstack?
I solved it by adding the tabs to the backstack with names (addBackStack("MainTab");
) which I chose in the TabListener
, and then overridden the onBackPressed()
method in the activity to recognize when a tab is going to change when the backstack is popped (by getting the top BackStackEntry
's name) and used actionBar.setSelectedNavigationItem(position)
accordingly.