Android适配沉浸式状态栏
Android适配沉浸式状态栏
fandun666Android系统提供了两种显示模式:明亮模式与暗黑模式
- 亮色模式(Light Model):整体偏亮,即背景亮色,文字等内容暗色
- 暗黑模式(Dark Model):整体偏暗,即背景暗色,文字等内容亮色。
将decorView的fitSystemWindows属性设置为false
WindowCompat.setDecorFitsSystemWindows(window, false) |
设置状态栏颜色为透明
window.statusBarColor = Color.TRANSPARENT |
是否需要改变状态栏上的 图标、字体 的颜色
val controller = WindowCompat.getInsetsController(window, window.decorView) |
mask:遮罩 默认是false
var mask = true |
android Q+ 去掉虚拟导航键 的灰色半透明遮罩
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { |
设置虚拟导航键的 背景色为透明
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { |
是否需要修改导航键的颜色,mask 同上面状态栏的一样
controller.isAppearanceLightNavigationBars = mask |
在带有刘海或者挖孔屏上,横屏时刘海或者挖孔的那条边会有黑边,解决方法是:
给APP的主题v27加上
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item> |