actionbar setDisplayOptions用法详解
2016-06-09 10:53
429 查看
Android setDisplayOptions 的用法详解
2014-11-16 08:58:52http://blog.csdn.net/mobilexu/article/details/41147417--点击数:3867<iframe id="iframeu848856_0" src="http://pos.baidu.com/wcfm?rdid=848856&dc=2&di=u848856&dri=0&dis=0&dai=2&ps=289x199&dcb=BAIDU_SSP_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1465440366976&ti=Android%20setDisplayOptions%20%E7%9A%84%E7%94%A8%E6%B3%95%E8%AF%A6%E8%A7%A3-Android-%E7%AC%AC%E4%B8%83%E5%9F%8E%E5%B8%82&ari=1&dbv=2&drs=1&pcs=1280x624&pss=1280x291&cfv=0&cpl=19&chi=1&cce=true&cec=UTF-8&tlm=1465440367<u=http%3A%2F%2Fwww.th7.cn%2FProgram%2FAndroid%2F201411%2F316629.shtml<r=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D1ljA_ZuEmtQ1iVjHq3gwkXHQwN7DSdHf7fAo4ROAKk5PO4YfpQ1_Ox_WXxl171B3fNvCgbRaaaMhNP3vE5Wzba%26wd%3D%26eqid%3Db476f6fa002e859d000000025758d814&ecd=1&psr=1920x1080&par=1920x1032&pis=-1x-1&ccd=24&cja=false&cmi=25&col=zh-CN&cdo=-1&tcn=1465440367&qn=5433bc56907a0187&tt=1465440366925.207.280.281" width="336" height="280" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>
Android中有几个地方用到了位运算,比如Intent Flags,自定义View onMeasure(int widthMeasureSpec, int heightMeasureSpec),还有ActionBar setDisplayOptions ,下面就理解一下setDisplayOptions的用法。
先看下文档中对他的描述:
public abstract void setDisplayOptions (int options)
Added inAPI level 11
Set display options. This changes all display option bits at once. To change a limited subset of display options, see
setDisplayOptions(int, int).
Parameters
options | A combination of the bits defined by the DISPLAY_ constants defined in ActionBar. |
---|
public abstract void setDisplayOptions(int options, int mask)
Added inAPI level 11
Set selected display options. Only the options specified by mask will be changed. To change all display option bits at once, see
setDisplayOptions(int).
Example: setDisplayOptions(0, DISPLAY_SHOW_HOME) will disable the
DISPLAY_SHOW_HOMEoption. setDisplayOptions(DISPLAY_SHOW_HOME, DISPLAY_SHOW_HOME | DISPLAY_USE_LOGO) will enable
DISPLAY_SHOW_HOMEand disable
DISPLAY_USE_LOGO.
Parameters
options | A combination of the bits defined by the DISPLAY_ constants defined in ActionBar. |
---|---|
mask | A bit mask declaring which display options should be changed. |
那么问题来了。。。
到底怎么用options 和mask尼?看下面内容
ActionBar默认如果没有做任何设置,会显示出一个箭头(DISPLAY_HOME_AS_UP),一个logo(DISPLAY_SHOW_HOME),标题(DISPLAY_SHOW_
4000
TITLE)
一旦使用setDisplayOptions(int options)这个方法,所有的设置项都变成了false,options使用或运算添加设置,添加一个就设置一个为true-显示,比如setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM),就是设置显示返回箭头和customView
setDisplayOptions(int options,int mask)方法,即在当前默认的ActionBar设置项内,选择几个来设置,这样的场景可能是Activity内部的Fragment,需要给Fragment设置ActionBar的几个确定选项,比如
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM,ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_CUSTOM);
options为 ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM
mask为 ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_CUSTOM
mask和options中都有ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM,那么就是把箭头和customView设置为显示,mask中剩下的ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME 就设置为隐藏,即对应的setDisplayShowTitleEnabled(false),其他没有提到的选项就应该为默认的配置。
可以这样理解,mask和option执行了&运算,同时出现的为true,出现一个的为false。
知道了原理我们就可以这样用,比如我们只要显示a,b,c三个选项,
那么就使用getSupportActionBar().setDisplayOptions(a|b|c);
如果我们在特定的条件下,比如fragment中,需要只对b,c,d这三个选项进行设置,把b,c设置为显示,d设置为隐藏,那么就可以使用getSupportActionBar().setDisplayOptions(b|c , b|c|d);
用了这个方法就不需要一个一个的设置setDisplayShowXXX()了
了解更多可以去:http://blog.csdn.net/zzp16/article/details/7956768
相关文章推荐
- CentOS下安装Nginx
- 基础命令
- Web应用架构
- linux 查看软件版本号
- IMF Vmvare 中linux 根分区磁盘扩容 gparted 增加虚拟机磁盘空间
- 安装apacheZeppelin
- Centos下安装GitLab
- find、grep、wc使用方法简单总结
- 阿里云ECS服务器,centos6.5安装jdk,mysql,tomcat
- [喵咪Linux(2)]环境变量的坑
- exit( )函数与return的区别
- [转]在创业公司做架构师,你需要解决哪些问题?
- 单机部署多个Tomcat的方法
- 自学Linux第三天
- 自学Linux第二天
- 自学Linux第一天
- 将 Linux 软件打包成 Snap 软件包
- linux服务器下发送邮件
- Starship Troopers
- opencv3.1包安装