记录2026年android中最新的沉浸式实现方式,以及窗口信息的设置
·
前言
本文用来记录目前为止最新的设置沉浸式布局方式,跟之前的固定写法相比更加简单,自由度也更高。
注意:
返回值insets:当前窗口所有系统UI占用的空间信息,包括状态栏 导航栏 刘海屏 手势区域 IME键盘 系统手势区域
如果页面内有recyclerView时,建议额外设置recyclerView.clipToPadding = false,可以让recyclerView的内容绘制到内边距所在的地方实现流畅的显示。
//1.开启沉浸式模式,即内容入侵到状态栏+导航栏,同时这两个设置为透明
enableEdgeToEdge() //
//2.通过监听系统窗口获取到系统栏数据,然后根据需求设置给当前的根布局
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
//获取到窗口的边距信息
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding( //这里兼容了根布局已有的内边距设置
v.paddingLeft + systemBars.left,
v.paddingTop, //上边距不设置实现沉浸式效果
v.paddingRight + systemBars.right,
v.paddingBottom + systemBars.bottom //底部会自动根据虚拟按键进行边距的设置
)
insets //此处返回值表示继续向子View传递,让子Viw也可以处理Insets
}
更多推荐


所有评论(0)