如何在 Android 中为底部导航 icons/text 设置不同的颜色
How to set different colors for bottom navigation icons/text in Android
我在 Android 应用程序中工作,其中我有底部导航 activity。
底部导航包含 3 个图标主页、提醒、设置。
以及主页碎片、提醒碎片、设置碎片等 3 个碎片。
我需要做的是默认情况下,当我打开应用程序时,我想为主页图标和文本设置颜色(所选项目的图标颜色和文本颜色应该不同),如果我从中选择其他选项卡底部导航我想更改所选选项卡的颜色。
我试过以下方法
res/color/bnv_tab_item_foreground.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/selected" />
<item android:color="@android:color/darker_gray" />
</selector>
values/colors.xml
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="selected">#25EB13</color>
<color name="not_selected">#EB1347</color>
</resources>
activity_main.xml
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="0dp"
android:layout_marginStart="0dp"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation"
app:itemIconTint="@color/bnv_tab_item_foreground"
app:itemTextColor="@color/bnv_tab_item_foreground" />
以上代码 ID 不适用于 me.Please 帮我解决这个问题。
在您的选择器中,在您的第二项中,尝试添加 android:state_checked="false"
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:color="@color/selected" />
<item
android:state_checked="false"
android:color="@android:color/not_selected" />
</selector>
很简单!您可以制作可绘制对象和颜色选择器。看看如何:
1 : 制作可绘制选择器
res/drawable/drawable_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorAccent" android:state_checked="true" /> // you can take drawable too.
<item android:drawable="@color/colorAccentDark" />
</selector>
2。制作颜色选择器
分辨率/颜色/color_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/white" android:state_checked="true"/>
<item android:color="@color/colorPrimary" />
</selector>
现在在 XML 中使用两个选择器。
<android.support.design.widget.BottomNavigationView
...
app:itemBackground="@drawable/drawable_selector" // set background
app:itemIconTint="@color/color_selector" // set icon tint/color
app:itemTextColor="@color/color_selector" // set text color
app:menu="@menu/home_bottom_menu"
... />
我在 Android 应用程序中工作,其中我有底部导航 activity。 底部导航包含 3 个图标主页、提醒、设置。 以及主页碎片、提醒碎片、设置碎片等 3 个碎片。
我需要做的是默认情况下,当我打开应用程序时,我想为主页图标和文本设置颜色(所选项目的图标颜色和文本颜色应该不同),如果我从中选择其他选项卡底部导航我想更改所选选项卡的颜色。
我试过以下方法
res/color/bnv_tab_item_foreground.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/selected" />
<item android:color="@android:color/darker_gray" />
</selector>
values/colors.xml
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="selected">#25EB13</color>
<color name="not_selected">#EB1347</color>
</resources>
activity_main.xml
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="0dp"
android:layout_marginStart="0dp"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation"
app:itemIconTint="@color/bnv_tab_item_foreground"
app:itemTextColor="@color/bnv_tab_item_foreground" />
以上代码 ID 不适用于 me.Please 帮我解决这个问题。
在您的选择器中,在您的第二项中,尝试添加 android:state_checked="false"
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:color="@color/selected" />
<item
android:state_checked="false"
android:color="@android:color/not_selected" />
</selector>
很简单!您可以制作可绘制对象和颜色选择器。看看如何:
1 : 制作可绘制选择器
res/drawable/drawable_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorAccent" android:state_checked="true" /> // you can take drawable too.
<item android:drawable="@color/colorAccentDark" />
</selector>
2。制作颜色选择器
分辨率/颜色/color_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/white" android:state_checked="true"/>
<item android:color="@color/colorPrimary" />
</selector>
现在在 XML 中使用两个选择器。
<android.support.design.widget.BottomNavigationView
...
app:itemBackground="@drawable/drawable_selector" // set background
app:itemIconTint="@color/color_selector" // set icon tint/color
app:itemTextColor="@color/color_selector" // set text color
app:menu="@menu/home_bottom_menu"
... />