更改底部导航栏项目的颜色

时间:2019-06-05 16:55:43

标签: android colors bottomnavigationview

我将原色设置为某种橙色,但我不明白为什么默认情况下我的底部导航栏将白色而不是原色作为所选项目的颜色,如何解决?

底部导航栏的

xml代码

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="0dp"
        android:layout_marginLeft="0dp"
        android:layout_marginEnd="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"
        android:background="@color/colorAccent"
        app:menu="@menu/bottom_navigation"/>

颜色(主要是某种橙色)

<color name="colorPrimary">#fb8c00</color>
<color name="colorPrimaryDark">#c25e00</color>
<color name="colorPrimaryLight">#ffbd45</color>
<color name="textOnPrimary">#000000</color>
<color name="colorAccent">#D81B60</color>

如您所见,所选项目和文本为白色,而原色为橙色 enter image description here

2 个答案:

答案 0 :(得分:0)

添加以下三个标记以控制Tabs的颜色以及BottomNavigationView的标签中显示的文本

<com.google.android.material.bottomnavigation.BottomNavigationView
    style="@style/Widget.MaterialComponents.BottomNavigationView.Colored"
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:layout_gravity="bottom"
    android:background="@android:color/white"
    app:itemIconTint="@android:color/holo_orange_dark"
    app:itemTextColor="@android:color/holo_orange_dark"
    app:menu="@menu/menu_main" />

看起来像这样

enter image description here

不幸的是,我可以创建Drawable来处理不同的状态,但是itemIconTint仅将颜色作为输入,而不将Drawable作为输入。仍然非常接近您想要实现的目标。

答案 1 :(得分:0)

步骤1在可绘制文件夹下创建可绘制文件,然后添加以下代码。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#82C341" android:state_checked="true" />
<item android:color="#a9a9a9" android:state_checked="false"/>
</selector>

第2步,然后像这样使用此可绘制文件。 添加这两行。 app:itemIconTint =“ @ drawable / your_drawable_file_name” app:itemTextColor =“ @ drawable / your_drawable_file_name”

完整代码

<android.support.design.widget.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    app:itemBackground="@color/tab_bg"
    android:layout_gravity="start"
    android:padding="0dp"
    android:focusable="false"
    app:itemIconTint="@drawable/your_drawable_file_name"
    app:itemTextColor="@drawable/bottom_navigation_color_selector"
    app:menu="@menu/menu_bottom_navigation"
    app:labelVisibilityMode="labeled" />