2

我用bottomNavigation.

选择时,我想用“不是图标外部”的颜色填充图标。我怎样才能做到这一点?

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:paddingTop="2dp"
    android:background="#FFFFFF"
    android:theme="@style/BottomNavigationTextStyle"
    app:labelVisibilityMode="labeled"
    app:itemIconSize="24dp"
    android:layout_alignParentBottom="true"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:menu="@menu/buttom_navigation_menu">

</com.google.android.material.bottomnavigation.BottomNavigationView>
4

2 回答 2

0

使用itemIconTint属性:

<com.google.android.material.bottomnavigation.BottomNavigationView
   app:itemIconTint="@color/my_selector"
   ..>

并定义一个选择器,如:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:alpha="1.0" android:color="..." android:state_checked="true"/>
  <item android:alpha="0.6" android:color="..."/>
</selector>
于 2020-06-30T08:45:57.203 回答
0

根据您的要求使用定制的图像。您需要为active状态和deactive状态添加 2 个图像。

home_icon_selector.xml为您的图标创建一个选择器

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/your_active_icon_here" android:state_selected="true" />
    <item android:drawable="@drawable/your_active_icon_here" android:state_pressed="true" />
    <item android:drawable="@drawable/your_active_icon_here" android:state_checked="true" />
    <item android:drawable="@drawable/your_deactive_icon_here" />
</selector>

更新您的菜单buttom_navigation_menu以使用上面的选择器

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/menu_home"
        android:enabled="true"
        android:icon="@drawable/home_icon_selector"
        android:title="@string/tab_title_home"/>
</menu>
于 2020-06-30T09:24:49.067 回答