一、任务:
今天我们来玩玩现今app挺漂亮的三种状态栏(名字可能不是这样叫,我随便叫叫,不要纠结这点小细节):
- 颜色状态栏
- 图片状态栏
- 全屏背景状态栏
二、实操
long time ago,状态栏都是有黑暗来统治,but经过了漫长的斗争,在4.4(KITKAT)时代光明终于迎来了胜利。状态栏天神不再独裁专制,允许我们来订制自己的专属。
说人话,就是4.4之前我们无法订制状态栏,只有4.4之后才可以。
windowTranslucentStatus:这个属性是指是否允许app的View插入(有点污)到状态栏。
设置这属性有两种方式,可以在styles或者代码设置,个人觉得还是在代码设置比较稳妥点。
Window window = getWindow();
window.setFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
就是这么的easy,设置之后的效果就是这样滴,可以看到View已经插入(好污的人啊)到状态栏了,so,只要把xml设置background,第三个任务全屏背景就OK啦。
效果是可以,but,你的View已经插入状态栏了,要解决这个问题其实很简单,只要在根布局设置android:fitsSystemWindows=”true”就可以了,这个属性是指是否需要空出状态栏的高度,其实就是相当于paddingTop。修正效果是:
接下来用最简单的办法实现颜色状态栏。
- 设置window flags插入状态栏
- 设置根布局背景为状态栏颜色,内容区为其他颜色
- 空出状态栏
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:fitsSystemWindows="true"
android: