gpt4 book ai didi

java - 如何更改 BottomNavigationView 中特定项目的 iconTint

转载 作者:行者123 更新时间:2023-11-29 22:53:35 25 4
gpt4 key购买 nike

我正在尝试更改 bottomNavigationViewfavorites menuItemiconTint

为此,我尝试了以下方法:

  • 创建带有颜色的选择器
  • 使用可绘制对象创建选择器
  • 以编程方式设置可绘制图标
  • 以编程方式将 bottomNavigationViewiconItemTint 设置为 null
  • 使用彩色图标 drawable,而不是 iconItemTint
  • favorites 的图标设置为drawable selector
  • Collection 夹背景设置为所需的颜色
  • favoritesiconTint 设置为所需的颜色

以上解决方案都不适合我。然后我想这可能是因为我使用的是 com.google.android.material.bottomnavigation.BottomNavigationView 而不是 android.support.design.widget.BottomNavigationView/p>我的底部NavigationView

    <com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
app:labelVisibilityMode="labeled"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
app:itemTextColor="#232323"
app:menu="@menu/bottom_nav_menu" />
我的 bottom_nav_menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

...
<item
android:title="Favorites"
android:id="@+id/btn_favorites"
android:enabled="true"
android:background="@color/red_heart"
android:icon="@drawable/ic_favorite_red"
app:showAsAction="ifRoom" />
...

这是我的应用程序的屏幕截图:

App ScreenShot

所有 menuItems 的选定颜色都是蓝色。我希望 favorites 在被选中时具有颜色 #ff4444(淡红色)。

最佳答案

我浪费了很多时间来寻找“如何更改底部导航 View 的一个特定图标的颜色”的正确答案,然后我自己解决了这个问题。这是示例:

val view = viewBinding.bottomNavigationView.menuView as NavigationBarMenuView
val itemToChange = view.findViewById<NavigationBarItemView>(R.id."item_to_change_id")
itemToChange.setIconTintList(
ColorStateList.valueOf(
ContextCompat.getColor(requireContext,R.color."color you need")
)
)

我没有用 android.support.design.widget.BottomNavigationView 尝试这个,但是用 com.google.android.material.bottomnavigation.BottomNavigationView 它工作正常:)

关于java - 如何更改 BottomNavigationView 中特定项目的 iconTint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57658560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com