用过android手机的人都知道android使用app的时候屏幕上方的状态栏都是黑色的,就算不是黑色的都与正在打开的app颜色不同。有一种灰常不搭调的感觉。~
今天无意中看了一下关于沉浸式状态栏的资料~~作为强迫症重度患者怎能错过?
下面就开始使用沉浸式状态栏之旅:
代码未上图先行:
沉浸式:
非沉浸式:
嗯~虽然第二张图比较模糊,但是也可以想象第一张比较好看(~ ̄▽ ̄)~。
那么接下来要说的就是如何实现第一张图的那样的效果:
首先要说明的是以下方法只适合android4.4或以上的系统
android4.4也就是api19~所以我们在res文件夹下新建一个values-v19,然后再新建一个style.xml文件。
在style上写以下代码:
指定style为noactionbar而且半透明
然后运行程序可以看到,状态栏与app顶部颜色是一致的,但是如果布局文件的顶部写有其它内容的话会发现布局文件上的内容会与状态栏上的内容重合~~这肯定是不允许的。
有没有方法解决呢?
在使用了沉浸式状态栏的布局文件上写上以下两句话:
然后在要使用沉浸式状态栏的布局文件上写上两句代码:
android:clipToPadding="true"
android:fitsSystemWindows="true"
就可以解决这个问题了~
但是在某些情况下会发现写上这两句代码之后,状态栏颜色会是白色或者其它颜色~这是因为写上这两句代码的地方的颜色是与状态栏颜色是一样的。
也就是说如果有一个LinearLayout的背景色是红色,那么使用了沉浸式状态栏的情况下,在这个linearLayout写上以上两句代码之后状态栏也会变成红色。
可以看到实际上就三句代码~