状态栏和导航栏

问题描述 投票:0回答:1

我最近开始开发我的第一个移动应用程序,遇到了一些困难,在某些选项卡上我的背景是蓝色的,我需要状态栏是蓝色的,而在某些选项卡上我有白色背景,我需要状态栏和导航栏为白色,请告诉我如何确保在某些选项卡上我的状态栏是相同的颜色,而在其他选项卡上是不同的

我尝试让状态栏透明,但不是我期望的结果。

android kotlin mobile
1个回答
0
投票

如果您的 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
}
© www.soinside.com 2019 - 2024. All rights reserved.