Android16系统内容全屏,状态栏和导航栏透明

复制代码
/**
 * 安卓16系统页面内容全屏设置,设置透明状态栏 + 透明导航栏
 */
private fun setupWindowInsets() {
    val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView)
    windowInsetsController?.let { controller ->
        //相当于xml中的android:fitsSystemWindows="false"属性
        WindowCompat.setDecorFitsSystemWindows(window, false)
        // 允许系统栏半透明显示
        controller.isAppearanceLightStatusBars = true  // 状态栏图标深色(适配浅色背景)
        controller.isAppearanceLightNavigationBars = true  // 导航栏图标深色

        // 设置系统栏行为:通过滑动可以临时显示系统栏
        controller.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE

        // 设置状态栏颜色为半透明
        window.statusBarColor = Color.TRANSPARENT
        // 设置导航栏颜色为透明
        window.navigationBarColor = Color.TRANSPARENT

        // 设置导航栏对比度,保持手势横杆可见
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            window.isNavigationBarContrastEnforced = false
        }
    }
}
相关推荐
alexhilton3 小时前
将应用迁移到Navigation 3:痛点、加班和紧急修复
android·kotlin·android jetpack
杉氧9 小时前
Navigation Compose 深度实践:如何优雅地串联起你的全栈 App?
android·架构·android jetpack
雨白12 小时前
指针与数组的核心机制
android
黄林晴17 小时前
Room 3.0 正式发布!包名彻底重构,KMP 成为核心主线
android·android jetpack
三少爷的鞋18 小时前
Kotlin 协程环境下的 DCL 懒加载:别把线程时代的经验直接搬过来
android
plainGeekDev18 小时前
Gson → kotlinx.serialization
android·java·kotlin
CYY951 天前
Compose 入门篇
android·kotlin
杉氧1 天前
Compose 时代的 MVI 架构:如何用单向数据流驱动复杂 UI?
android·架构·android jetpack
杉氧1 天前
Modifier 的艺术:为什么链式调用的顺序决定了UI 的生命周期?
android·架构·android jetpack