码迷,mamicode.com
首页 > 其他好文 > 详细

actionbar-home按键代码中设置显示跟隐藏

时间:2015-04-17 21:44:30      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

今天在做项目的时候,遇到了一个问题,就是要把home在代码中动态显示跟隐藏。现在把方法记录如下

  public void removeBackButton() {
        if (mActionBar == null) {
            return;
        }   
        // Remove the back button but continue showing an icon.
        final int mask = ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_HOME;
        mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME, mask);
        mActivity.getActionBar().setHomeButtonEnabled(false);
    }   
/* Vanzo:zhangshuli on: Fri, 17 Apr 2015 18:15:31 +0800
 */
    public void setBackButtonEnable(boolean enable) {
        if (mActionBar == null) {
            return;
        }   
        mActivity.getActionBar().setHomeButtonEnabled(enable);
    }   
// End of Vanzo: zhangshuli

    public void setBackButton() {
        if (mActionBar == null) {
            return;
        }   
        // Show home as up, and show an icon.
        final int mask = ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_HOME;
        mActionBar.setDisplayOptions(mask, mask);
        mActivity.getActionBar().setHomeButtonEnabled(true);
    }   

上面代码中

mActionBar.setDisplayOptions(mask, mask);

就是用来设置home按钮显示的,它的具体用法如下

(1)如果只有一个参数,那么它就是直接设定显示项,

如,

int options = DISPLAY_SHOW_HOME | DISPLAY_USE_LOGO;
setDisplayOptions(options);

那么,actionbar就会显示home跟log按钮,也就是,里面添加了谁,谁就显示

(2)如果有两个参数的话

int options = ActionBar.DISPLAY_SHOW_TITLE |ActionBar.DISPLAY_SHOW_HOME ;

int mask = ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_CUSTOM;

getSupportActionBar().setDisplayOptions(options, mask);

如上代码,这时候actionbar会显示home 跟title,其他的不会显示

也就是只有当options在mask中被设置才能被显示,也就是设置为true。

知识补充:

 

1.ActionBar默认如果没有做任何设置,会显示出一个箭头(DISPLAY_HOME_AS_UP),一个logo(DISPLAY_SHOW_HOME),标题(DISPLAY_SHOW_TITLE)

2.单独设置某项显示方法如下

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setDisplayShowCustomEnabled(true);
getActionBar().setDisplayShowHomeEnabled(true);
getActionBar().setDisplayShowTitleEnabled(true);
getActionBar().setDisplayUseLogoEnabled(true);

3.设置各个按钮是否可点击状态

//它好像可以控制home等的点击状态
getActionBar().setHomeButtonEnabled(true);

 

actionbar-home按键代码中设置显示跟隐藏

标签:

原文地址:http://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_home_150417202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!