今天在做项目的时候,遇到了一个问题,就是要把home在代码中动态显示跟隐藏。现在把方法记录如下 我们可以使用 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.设置各个按钮是否可点击状态 getActionBar().setHomeButtonEnabled(true);