思路:
1.首先theme里设置windowTranslucentStatus和statusBarColor这两个属性。发现状态栏有一个半透明的蒙层,而且布局不是从最边缘绘制,实在状态栏下面开始计算的。
2.设置activity没有限制,即全屏
3.在你想要实现的布局上添加一个空view,背景色就是你状态栏的颜色。若想实现图片在最顶部并沉浸的效果,不加这个view即可。设置这个view的高度为状态栏高度即可实现
具体代码:styles.xml
<item name="android:windowTranslucentStatus">true</item> <item name="android:statusBarColor">@android:color/transparent</item>
BaseActivity.kt
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { window.setFlags( WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS ) }