欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

android4.4沉浸式标题栏,android4.4标题栏,这次终于有机会了

来源: 开发者 投稿于  被查看 28360 次 评论:16

android4.4沉浸式标题栏,android4.4标题栏,这次终于有机会了


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

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

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

我是这样做的:

设置style文件

<style name="ThemeLeftAndRightAnimation" parent="android:Theme.Black">
        <item name="android:windowAnimationStyle">@style/left_right_Animation</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
        <item name="android:windowBackground">@color/navbar</item>
        <item name="android:windowTranslucentStatus">true</item>
    </style>

    <style name="MyActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@color/navbar</item>
    </style>

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

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

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.

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


用户评论