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
        }
    }
}
相关推荐
IT小盘12 分钟前
08-FastAPI加MySQL实现AI对话记录持久化
android·mysql·fastapi
清泓y17 分钟前
Android内存管理与性能优化面试真题
android·面试·性能优化
YF02112 小时前
Android compose详解
android
IT小码哥丶2 小时前
Android进阶之事件分发机制深度剖析
android
执明wa17 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder17 小时前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农17 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
用户693717500138418 小时前
从代码生产者到 AI 协作者:软件工程师的角色重构
android·前端·后端
GitLqr19 小时前
别在 Flutter 的 main() 里乱锁屏幕方向,小心 iPad 分屏功能被你搞没了
android·flutter·ios