Extended ActionBar沉浸式状态栏(顶部状态栏填充与actionBar颜色相同)
2015-08-05 22:00
363 查看
Extended ActionBar在网上查了好多,实现都略复杂。自己实现了一个actionbar是android3.0(也就是API11)以上才有的,所以设置的时候注意minSDK要是11+1、manifest中定义application的theme
<applicationandroid:theme="@style/AppTheme"2、自定义custom action bar 定义values/style.xml中的style
<style name="AppTheme" parent="@android:style/Theme.Holo.Light"> <!-- Customize your theme here. --> <item name="android:actionBarStyle">@style/myActionBar</item> <item name="android:windowTranslucentStatus">true</item> <!--表示是否要填充顶部的状态栏区域--> <item name="android:windowTranslucentNavigation">true</item> <!--表示是否要填充底部的状态栏区域--> <!--<item name="android:fitsSystemWindows">true</item>--> </style>
<style name="myActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:background">@drawable/actionbar_bg</item> <item name="android:actionBarSize">48dip</item></style>3、定义activity的布局layout文件的根节点view的背景色与action bar 相同(这里是参考知乎上一个回答http://www.zhihu.com/question/26587939 MIUI官方说状态栏半透明需要应用程序自己支持,是指的如果想要使用这个新特性,需要在开发时把目标Android版本选为4.4或以上,并在AndroidManifest里定义或者在代码中为窗口设置flag = FLAG_TRANSLUCENT_STATUS。设置过这个属性以后,可以指定标题栏颜色,如果不指定,标题栏会自动把自己变为和当前Activity的根布局background同色。)另外,使用actionbar有两种方式,使用support包和直接使用高版本中的actionbar两种方式有不同的style文件定义方式(参考https://developer.android.com/intl/zh-cn/training/basics/actionbar/styling.html#CustomBackground)一、3.0以上版本默认有actionbar ,在activity中调用getActionBar(),可以获得actionbartheme
<?xml version="1.0" encoding="utf-8"?><resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:background">@drawable/actionbar_background</item> </style></resources>二(minsdk版本低于11)用support包, 使用action需要activity继承ActionBarActivity,获取actionbar时,使用getSupportActionBar()方法
<?xml version="1.0" encoding="utf-8"?><resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> <!-- Support library compatibility --> <item name="actionBarStyle">@style/MyActionBar</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="android:background">@drawable/actionbar_background</item> <!-- Support library compatibility --> <item name="background">@drawable/actionbar_background</item> </style></resources>
相关文章推荐
- jquery autocomplete 自动补全
- 如何轻松干掉svd(矩阵奇异值分解),用代码说话
- ios状态栏的一些操作
- 我的C语言入门到精通之路 day07
- 一个网卡设置多个ip,添加网关;一个虚拟机添加多个网卡
- HBuilder开发App教程12-详情页,删除和退出
- 如何提升Visual Studio 2010 的速度
- mysql处理高并发数据,防止数据超读
- 雄迈实习日志
- source-php-usort
- Spring+Shiro案例分析
- 超级快速幂
- 《中国的人口与城市》:关于中国人口与中国城市的数据分析,4星推荐。
- 关于校园网出现“感叹号”而不能上网的解决方案。
- 北大ACM1088——滑雪~~DP
- Android - Fragment (一)定义
- 网购分期不还 N种恶果等着你
- UVA10387矩形内的无损碰撞
- 最短路算法
- 深入理解 Statement 和 PreparedStatement