Android的ActionBar:显示/隐藏标签dynamic?

是否有可能从动作栏dynamic删除/恢复标签栏?

到目前为止,我通过改变操作栏的导航模式来做到这一点。 我使用下面的代码来删除和恢复标签栏:

@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并重新创build当前的TabListener选项卡。

Solutions Collecting From Web of "Android的ActionBar:显示/隐藏标签dynamic?"

要dynamic删除操作栏选项卡,只需要:

 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(); } 

这是按预期工作,因为选项卡被选中,因为它没有出现。 我build议你自己做TabListener中的控件。