方法一工具类class SetSystemBars { companion object{ fun setupSystemBars(activity: Activity,view: View) { // 沉浸式状态栏配置 WindowCompat.setDecorFitsSystemWindows(activity.window, false) activity.window.statusBarColor Color.TRANSPARENT val insetsListener OnApplyWindowInsetsListener { view, insets - val systemBars insets.getInsets(WindowInsetsCompat.Type.systemBars()) view.updatePadding( // top systemBars.top, // 顶部留出状态栏空间 bottom systemBars.bottom, left systemBars.left, right systemBars.right ) insets } ViewCompat.setOnApplyWindowInsetsListener(view, insetsListener) } fun setupSystemBars2(activity: Activity) { (activity as AppCompatActivity).enableEdgeToEdge( SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT), SystemBarStyle.auto(DefaultLightScrim, DefaultDarkScrim)) } } }使用//onCreate方法中setContentView下调用 SetSystemBars.setupSystemBars(this,findViewById(R.id.ll_content))//ll_content是Activity的根布局id方法二//activity的onCreate方法中调用 if (supportActionBar ! null) { supportActionBar!!.hide() // 隐藏 ActionBar } window.apply { // 清除默认标志 clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) // 设置状态栏透明 statusBarColor Color.TRANSPARENT // 让布局延伸到系统栏区域 decorView.systemUiVisibility ( View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN ) } val insetsListener OnApplyWindowInsetsListener { view, insets - val systemBars insets.getInsets(WindowInsetsCompat.Type.systemBars()) view.updatePadding( // top systemBars.top, // 顶部留出状态栏空间 bottom systemBars.bottom, left systemBars.left, right systemBars.right ) insets } ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.ll_content), insetsListener)说明两种方法都可实现沉浸式状态栏显示布局并且布局不会被软键盘遮挡