我最近开始开发我的第一个移动应用程序,遇到了一些困难,在某些选项卡上我的背景是蓝色的,我需要状态栏是蓝色的,而在某些选项卡上我有白色背景,我需要状态栏和导航栏为白色,请告诉我如何确保在某些选项卡上我的状态栏是相同的颜色,而在其他选项卡上是不同的
我尝试让状态栏透明,但不是我期望的结果。
如果您的 Activity 中有多个 Fragment,并且需要为不同的 Fragment 使用不同颜色的状态/导航栏,那么您可以使用下面的代码来更改颜色
window?.statusBarColor = ContextCompat.getColor(context, color)
window?.navigationBarColor = ContextCompat.getColor(context, color)
或者,如果它用于 Activity,您可以使用上面的代码或通过设置以下属性在 styles.xml 中声明特定活动的主题
<style name="ActivityTheme" parent=".....">
<item name="android:statusBarColor">@color/...</item>
<item name="android:navigationBarColor">@color/...</item>
</style>
关于将导航栏设置为透明: Android操作系统从10版本开始,就保证了导航栏有足够的对比度。因此,在这种情况下,我们需要在窗口上使用 setNavigationBarContrastEnforced() 禁用此功能。
if (Build.VERSION_CODES.Q <= Build.VERSION.SDK_INT) {
window?.isNavigationBarContrastEnforced = false
}