我正在尝试对底部导航实施图标色调,但由于某种原因似乎不起作用,
我添加了硬编码的
#color
代码,并将其添加到colors.xml
中,并为该实例制作了selector
,它们都不起作用,但如果我检查底部导航的text color
,那么它的集合到需要的颜色
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_margin="20dp"
android:layout_marginEnd="30dp"
android:background="@drawable/border">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bottom_navigation_style"
app:itemIconSize="30dp"
app:itemIconTint="@color/buttonBorder"
app:itemTextColor="@color/buttonBorder"
app:labelVisibilityMode="labeled"
app:menu="@menu/bottom_nav_menu" />
</RelativeLayout>
这是颜色.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="buttonColor">#FFFDF6</color>
<color name="buttonBorder">#100F15</color>
</resources>
颜色选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/buttonBorder" />
<item android:state_checked="false" android:color="@color/buttonBorder" />
</selector>
菜单图标切换之一的选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/outline_dashboard_24" android:state_checked="false" />
<item android:drawable="@drawable/baseline_dashboard_24" android:state_checked="true" />
</selector>
最后是菜单本身
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/dashboard"
android:icon="@drawable/selector_main"
android:title="Buttons" />
<item
android:id="@+id/add_icon"
android:icon="@drawable/selector_requestbtn"
android:title="Request Button" />
<item
android:id="@+id/favourite_icon"
android:icon="@drawable/selector_favourite"
android:title="Favourite" />
</menu>
我想也许我不需要图标颜色色调的选择器,因为我有
selector
用于图标本身,用于将图标从填充切换到轮廓,颜色与我上面提到的相同,但这似乎不是工作这就是我也尝试过的原因icontint
但似乎对我不起作用
在颜色选择器文件中,您为选中和未选中状态定义了相同的颜色(@color/buttonBorder)。这意味着当图标的状态改变时,图标的颜色不会改变。如果您想为不同的状态使用不同的颜色,您应该在颜色选择器文件中为每个状态指定不同的颜色。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/colorWhenChecked" />
<item android:state_checked="false" android:color="@color/colorWhenUnchecked" />
</selector>
如果您仍然遇到问题,检查主题中是否有任何可能影响 BottomNavigationView 的覆盖样式可能会有所帮助
在这行代码中,将 yourColor 替换为您要使用的实际颜色值。
bottomNavigationView.setItemIconTintList(ColorStateList.valueOf(yourColor));