顾名思义,就是透明的状态栏 translucent status bar。
尤其适合顶部是图片的布局,用起来十分炫酷,它看起来可能是这样的
可以看到图片延伸到状态栏的底部,界面浑然一体。
设置的方法很简单,
在style.xml添加
<item name="android:windowTranslucentStatus">true</item>
或在activity中
// setContentView() 之前
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
不过硬币有两面,透明状态栏的一个副作用就是:你需要自行维护设置透明状态栏之后损失的高度。
由于状态栏的信息是始终存在的,设置透明状态栏实际上相当于将原本处于下方的布局往上移,如果你不处理这个问题,你的界面将有可能这样:
actionBar 过于靠近 statusBar,既不美观,操作上也不方便。
怎么办?官方已经给你考虑到了
fitsSystemUiWindow 来搞定
fitsSystemUiWindow 的官方文档说明:
用来声明一个 view 在布局的时候预留一段SystemUI 的高度,并设置到它的padding里
看起来就是这个了,但是怎么用呢?
它可以用在所有的 view 上,多数时候你只需要设置1个就够了,通常设置在 root viewGroup上就可以。但又有特殊的情况,并不是随便拿个 view 设置上 fitsSystemUiEnable="true" 就能解决问题。