如何更改导航栏图标的颜色? (Android工作室)

时间:2018-05-07 08:32:58

标签: android-studio colors navigationbar

为避免混淆navigationbar实际上是什么,这里是picture

如您所见,我使用以下方法添加了新颜色而非标准黑色:

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

但现在几乎看不到图标,所以我想把它们变成黑色,或者至少变暗。我搜索了SO和webb但空手而归。有任何想法吗?

2 个答案:

答案 0 :(得分:0)

您无法自行更改按钮的颜色。 但是,您可以尝试将导航栏设置为true。应该注意的是,这只能从API级别27获得。

  

windowLightNavigationBar   在API级别27中添加

     

int windowLightNavigationBar

     

如果设置,将绘制导航栏以使其兼容   带有灯光导航栏背景。

     

要使此操作生效,窗口必须绘制系统栏   windowDrawsSystemBarBackgrounds和导航的背景   酒吧一定不能要求半透明   windowTranslucentNavigation。对应设定   装饰视图上的SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR。

     

可以是布尔值,例如“true”或“false”。

source

答案 1 :(得分:0)

你可以像这样着色

将其添加到导航视图

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    app:itemIconTint="@drawable/bottom_nav_colors"
    app:itemTextColor="@drawable/bottom_nav_colors"
    app:menu="@menu/bottom_navigation" />

像这样定义bottom_nav_colors

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/color1" android:state_checked="true" />
    <item android:color="@color/color2" />
</selector>

您可以通过更改此状态来更改代码中的颜色。

BottomNavigationView mBottomNav = findViewById(R.id.navigation);

mBottomNav.getMenu().getItem(0).setChecked(true);

或者像这样

mBottomNav.setSelectedItemId(0);