1. 旧API隐藏导航栏:
window.attributes.apply {
systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE
window.attributes = this
}
但在SDK30开始,我们发现 systemUiVisibility,SYSTEM_UI_FLAG_HIDE_NAVIGATION,SYSTEM_UI_FLAG_IMMERSIVE 已经被废弃了,我们应当用新的API进行调用,新的API兼容旧版本;
1.1 新API隐藏导航栏:
/**
* @param immersive 是否启用沉浸式导航栏 true启用,导航栏将透明,底部上滑出现,过段时间消失
* false不启用,导航栏不透明,底部上滑出现,出现后不再消失
*/
private fun hideNavigationBar(window: Window, immersive: Boolean) {
val windowInsetsControllerCompat = WindowInsetsControllerCompat(window, window.decorView)
windowInsetsControllerCompat.hide(WindowInsetsCompat.Type.navigationBars())
windowInsetsControllerCompat.systemBarsBehavior =
if (immersive) WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE