更改底部导航栏图标颜色?

问题描述

这是我现在底部导航栏的样子:

enter image description here

看起来不错吧?除此之外,现在您可以清楚地(或大部分情况下)看到每个图标,但是当您在我的设备上查看它时,您几乎看不清这些图标。

目前我的 themes.xml 中有以下内容

...
<!-- Navigation bar colour. -->
<item name="android:navigationBarColor">@color/pink</item>
<item name="android:windowLightNavigationBar">false</item><!-- This does nothing -->
...

目前我的 minSdkVersion 是 29,我的 targetSdkVersion 是 30。

我该如何更改图标颜色,或者如果无法更改,至少将它们设置为较深的颜色以便可以查看?

解决方法

您无法更改导航栏图标的颜色。但是你可以让它变暗或变亮。你的粉红色导航栏看起来很轻。因此,将 windowLightNavigationBar 设置为 true

<item name="android:windowLightNavigationBar">true</item>

screenshot

,

你只能让它更轻

,

请试试这个

 <item name="android:navigationBarColor">@android:color/white</item>
<item name="android:windowLightNavigationBar">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
,
<item name="android:windowLightNavigationBar">true</item> 

应该是对的。但你说它不起作用。 所以我假设你的活动还有另一个主题。

所以,我建议,在您的活动或片段代码中,直接设置窗口标志如何。 试试下面的代码。它会让你的图标变暗

activity.window.decorView.systemUiVisibility = (
                or View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
                or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR)
,

您在 themes.xml 文件中 - 您是否尝试将其添加到 styles.xml 文件中?

<item name="android:navigationBarColor">@color/black</item>

此外,此 Styles and Themes 页面可能会对您有所帮助!他们有一个比较和很好的例子解释。例如,您可以像这样自定义您使用的默认主题:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...