首先是
- 由沉浸式状态栏引发的血案
从官方定义的角度阐明了两者的区别。最根本的在于一个是全屏,一个并不是。
另外用手写图表标明了一个普通Activity window 在view上的结构,为之后的修改给好了方向。
Android-transulcent-status-bar
在view层级的基础上指明了三种实现透明状态栏的方法:修改contentView,用自定义view实现颜色,用marginTop来模拟
fitsSystemWindows
;修改LinearLayout,添加自定义view,但是会导致黑线;修改contentView,用自定义view实现颜色,然后利用ChildView
的fitsSystemWindows
属性来控制位置。为了完善上面的第二种,可以去掉这条黑线:
https://github.com/msdx/status-bar-compat/commit/ca8fda69cf446d47d4244872775574549240b100
沉浸式的官方文档:
http://hukai.me/android-training-course-in-chinese/ui/system-ui/immersive.html
透明栏的第三方兼容库:
https://github.com/laobie/StatusBarUtil