1.edgeToEdge的变动
android15 默认已经开启了透明状态栏和边到边的效果 官方文档的相关介绍:https://developer.android.com/develop/ui/views/layout/edge-to-edge#enable-edge-to-edge-display
1.1.edgeToEdge对状态栏的影响
- 
手势导航栏全部透明 
- 
三键式导航栏百分之八十不透明 
- 
三键式导航弃用但仍旧可以设置底部栏颜色 
setStatusBarContrastEnforced() 是 Android 系统中一个与控制状态栏对比度相关的 API。它主要用于确保状态栏图标(如时间、电池图标)在任何背景下都有足够的可见性。
| api | 手势导航 | 三键式导航 | 
|---|---|---|
| setNavigationBarColor | 无效 | 废弃(有效) | 
| setNavigationBarContrastEnforced | 无效 | 默认百分之八十不透明 | 
| setStatusBarColor | 无效 | 无效 | 
| setStatusBarContrastEnforced | 无效 | 无效 | 
1.2.edgeToEdge效果
android15的机型按照官网描述,如果不做任何处理应该呈现如下情况
- 
手势导航的时候全透明且盛满全屏 
- 
三键导航的时候底部半透明且撑满全屏 
但是实际上对于部分机型会出现如下情况
- 
不调用edgeToEdge:在这种情况下手势导航也会是半透明的导航栏 
- 
调用edgeToEdge:在这种情况下是正常的显示样式 
如何设置三键式导航栏的半透明状态为透明状态
方案一:强制关闭对比度
window.isNavigationBarContrastEnforced = false
方案二:给decorView设置windowInsets监听1.BottomSheetDialog的状态栏适配
不同的主题对底部弹窗有不同的设定,下方两个主题分别对应的效果为未设置edgeToedge和自动edgeToedge,也就是说本质上它会不会把底部弹窗里的内容延伸到导航栏

右边这个情况是需要下面这样来进行edgeToedge之后的弹窗背景颜色和弹窗圆角的

针对右边的edgeToedge的情况而言需要注意下面这个代码

安卓官方所说,针对三键式导航,是默认半透明状态的导航栏
实测状态下,加上上图这一行代码,效果就和手势导航式一样变成透明导航栏了
如果还是要进行颜色适配,就参考前面activity的那种普通方法