当前位置:  开发笔记 > Android > 正文

Android:底部导航视图 - 更改所选项目的图标

如何解决《Android:底部导航视图-更改所选项目的图标》经验,为你挑选了5个好方法。

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;
            }
        });

我想更改所选位置底部导航的图标.当用户点击一个项目时,我们如何实现此功能?

(如果用户点击了一个项目,那么图标会变为另一个项目)



1> kuljeet sing..:

您可以在drawable文件夹中创建可绘制选择器,并且可以根据视图中使用的窗口小部件的状态更改图像



    
    


这比编程方法更好.要指定的状态实际上是`android:state_checked`而不是`android:state_selected`
@AbhinavUpadhyay从xml删除itemIconTint仍然不起作用。bottomNavigationView.setItemIconTintList(null)是解决方案。您知道xml中的等效内容吗?

2> Kishan Solan..:

如果以上解决方案无法让您更改所选项目图标,请在代码中添加以下行:

bottomNavigationView.setItemIconTintList(null);

这将禁用所选项目图标的色调效果.

我有同样的问题.我已经添加了选择器drawable,用于在选中/选中时更改BottomNavigationView项目的图标.



3> 小智..:

您需要重置图标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:
            }



4> Saiful Islam..:

我发现这是使用选择器drawable更好的方法: -

可绘制的名称是drawable文件夹中的child_selector.xml.



    
    

只需将其添加到bottom_navigation_main.xml中: -







祝好运.


BottomNavigationView.setItemIconTintList(null);

5> A. Petrizza..:

好吧,我想了解如何让每个项目都有自己的图像,并且在评论应该去的地方有些混乱,我想要输入这个答案.

首先创建菜单及其项目.您的选择器将进入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);

你有它.一切都像魅力.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有