Android的动作条:动态显示/隐藏标签?(Android ActionBar: show/hid

2019-09-01 11:37发布

是否可以删除/恢复,从动态的操作栏中的标签栏?

到现在为止我通过改变操作栏的导航模式这样做。 我用下面的代码删除和恢复标签栏:

@Override 
public void restoreTabs() {     
    getSupportActionBar()
    .setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    this.supportInvalidateOptionsMenu();
}

@Override
public void removeTabs() {      
    getSupportActionBar()
    .setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
    this.supportInvalidateOptionsMenu();
}

这样的作品,但有一个很大的问题:每次我打电话setNavigationModeonTabSelected是所谓的TabListener和当前运行结束标签被创建。

Answer 1:

要动态删除的动作条的标签,你只需要:

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);

要增加他们在飞行中,简单地做:

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

对于第二种情况,假设是,设定导航模式后,你还会添加标签,操作栏,与此类似:

for (int resourceId : tabs) {
        actionBar.addTab(actionBar.newTab().setText(resourceId)
                .setTabListener(this));
}


Answer 2:

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


Answer 3:

这是工作为目的,因为被选中的标签,因为它并没有出现。 我建议你通过自己在TabListener控制的事情。



文章来源: Android ActionBar: show/hide tabs dynamically?