是否可以删除/恢复,从动态的操作栏中的标签栏?
到现在为止我通过改变操作栏的导航模式这样做。 我用下面的代码删除和恢复标签栏:
@Override
public void restoreTabs() {
getSupportActionBar()
.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
this.supportInvalidateOptionsMenu();
}
@Override
public void removeTabs() {
getSupportActionBar()
.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
this.supportInvalidateOptionsMenu();
}
这样的作品,但有一个很大的问题:每次我打电话setNavigationMode
, onTabSelected
是所谓的TabListener
和当前运行结束标签被创建。
要动态删除的动作条的标签,你只需要:
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
要增加他们在飞行中,简单地做:
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
对于第二种情况,假设是,设定导航模式后,你还会添加标签,操作栏,与此类似:
for (int resourceId : tabs) {
actionBar.addTab(actionBar.newTab().setText(resourceId)
.setTabListener(this));
}
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
// calling onPrepareOptionsMenu() to show action bar icons
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
// calling onPrepareOptionsMenu() to hide action bar icons
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
invalidateOptionsMenu();
}
这是工作为目的,因为被选中的标签,因为它并没有出现。 我建议你通过自己在TabListener控制的事情。