我BottomNavigationView
在我的应用程序中添加了像.
main.xml中
bottom_navigation_main.xml
MainActivity点击
bottomNavigationView.setOnNavigationItemSelectedListener( new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.action_favorites: //need change icon of favotites here. case R.id.action_schedules: case R.id.action_music: } return true; } });
我想更改所选位置底部导航的图标.当用户点击一个项目时,我们如何实现此功能?
(如果用户点击了一个项目,那么图标会变为另一个项目)
您可以在drawable文件夹中创建可绘制选择器,并且可以根据视图中使用的窗口小部件的状态更改图像
如果以上解决方案无法让您更改所选项目图标,请在代码中添加以下行:
bottomNavigationView.setItemIconTintList(null);
这将禁用所选项目图标的色调效果.
我有同样的问题.我已经添加了选择器drawable,用于在选中/选中时更改BottomNavigationView项目的图标.
您需要重置图标onclick,然后在开关情况下,您只需要设置您需要更改的图标,因此只有在选择图标更改时.
Menu menu = bottomNavigationView.getMenu(); menu.findItem(R.id.action_favorites).setIcon(favDrawable); switch (item.getItemId()) { case R.id.action_favorites: item.setIcon(favDrawableSelected); case R.id.action_schedules: case R.id.action_music: }
我发现这是使用选择器drawable更好的方法: -
可绘制的名称是drawable文件夹中的child_selector.xml.
只需将其添加到bottom_navigation_main.xml中: -
祝好运.
好吧,我想了解如何让每个项目都有自己的图像,并且在评论应该去的地方有些混乱,我想要输入这个答案.
首先创建菜单及其项目.您的选择器将进入ICON值中的那些项目.这里我们有2个选择器,每个选择器都是为其菜单项而制作的.
item android:id="@+id/navigation_home" android:icon="@drawable/navigation_home_selector" android:title="@string/title_home" /> item android:id="@+id/navigation_profile" android:icon="@drawable/navigation_profile_selector" android:title="@string/title_profile" />
现在这里是你的选择器文件,它将放在你的drawable文件夹中.
最后一步由@ KishanSolanki124提供
将此行代码添加到BottomNavigationView.
BottomNavigationView.setItemIconTintList(null);
你有它.一切都像魅力.