趁着清明节的闲工夫,把我的百年不升级一次系统的红米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.
大功告成了,欣赏一下截图吧