(原创)android4.4沉浸式标题栏

趁着清明节的闲工夫,把我的百年不升级一次系统的红米note手机升级到了miuiv6的系统,早就听说android4.4的系统有沉浸式标题栏,一直没有体验过。这次终于有机会了。看了几个手机上常用的应用都采用了这个效果,例如qq空间,wps、lbe等。自己也突然手痒痒了一下,想把当前正在做的项目也做成这种效果。

心动不如行动,废话不多说,直接开干就可以了:

我目前做的司信项目所有的activity都继承自一个titileactivity,这个titleactivity封装了一个导航栏,ui给他设计了一个颜色。所以所有的系统的标题栏就跟这个颜色相同就可以了。

我是这样做的:

设置style文件

 1  <style name="ThemeLeftAndRightAnimation" parent="android:Theme.Black">
 2         <item name="android:windowAnimationStyle">@style/left_right_Animation</item>
 3         <item name="android:windowNoTitle">true</item>
 4         <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
 5         <item name="android:windowBackground">@color/navbar</item>
 6         <item name="android:windowTranslucentStatus">true</item>
 7     </style>
 8 
 9     <style name="MyActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
10         <item name="android:background">@color/navbar</item>
11     </style>

其实就是设置了actionbar的样式以及主题的背景颜色,让他的颜色与我程序的导航栏颜色相同。

接下来在titleactivity的oncreate的setcontentview后加入以下代码:

1 if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {
2             getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
3             getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
4         }

再在titleactivity的xml布局文件中加入以下代码:

android:clipToPadding="true"
android:fitsSystemWindows="true"

这就完了吗,对,就是这么简单。也许你会遇到一些问题,因为actionbar要求的最小api是11.所以你的minsdk必须设置成11.

大功告成了,欣赏一下截图吧

原文地址:https://www.cnblogs.com/dongweiq/p/4414544.html