在 Android API 级别 30 中,setSystemBarsAppearance 方法无法覆盖主题数据。但是,我们可以使用 WindowInsetsControllerCompat 类中的方法来实现相同的效果。
以下是一个包含代码示例的解决方法:
implementation 'androidx.core:core-ktx:1.5.0'
val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView)
windowInsetsController?.let { controller ->
ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { _, insets ->
controller.isAppearanceLightStatusBars = true
controller.isAppearanceLightNavigationBars = false
insets
}
}
在上述示例中,我们使用 ViewCompat.setOnApplyWindowInsetsListener 方法来设置 WindowInsetsControllerCompat 的外观属性。你可以根据自己的需求定制外观。
请注意,setSystemBarsAppearance 方法只在 Android API 级别 30 及更高版本中可用。如果你的应用程序需要兼容低版本的 Android,请确保在调用这个方法之前进行适当的版本检查。