Is it possible to remove/restore the tab bar from the action bar dynamically?
Up to now I did this by changing the navigation mode of the action bar. I used following code to remove and restore the tab bar:
@Override
public void restoreTabs() {
getSupportActionBar()
.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
this.supportInvalidateOptionsMenu();
}
@Override
public void removeTabs() {
getSupportActionBar()
.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
this.supportInvalidateOptionsMenu();
}
That works, but there is a big problem: Everytime I call setNavigationMode
, onTabSelected
is called in the TabListener
and the currently opend tab gets recreated.
To remove the actionbar tabs dynamically, you simply need:
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
To add them on the fly, simply do:
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
For the second case, the assumption is that after setting the navigation mode, you will also add tabs, to the action bar, similar to this:
for (int resourceId : tabs) {
actionBar.addTab(actionBar.newTab().setText(resourceId)
.setTabListener(this));
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With