android windowInsets api

214 阅读1分钟

沉浸式状态栏设置

WindowCompat.setDecorFitsSystemWindows(window, false)

第二个参数 false沉浸,true不沉浸

可以搭配 window.statusBarColor = Color.TRANSPARENT 来设置底色

状态栏的展示与颜色显示

ViewCompat.getWindowInsetsController(findViewById(android.R.id.content)).let { controller ->

controller.show(WindowInsetsCompat.Type.statusBars())

controller.isAppearanceLightStatusBars = true //true字体黑色,false白色

}

可以控制的系统ui类型

WindowInsetsCompat.Type.ime() //键盘

WindowInsetsCompat.Type.statusBars() //状态栏

WindowInsetsCompat.Type.navigationBars() //导航栏

WindowInsetsCompat.Type.systemBars() //状态栏、导航栏和标题栏

可以通过 ViewCompat.getWindowInsetsController方法获取到WindowInsetsController 后

通过WindowInsetsController的show和hide方法控制以上四类的展示隐藏