Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击时更改底部导航图标_Java_Android_Bottomnavigationview - Fatal编程技术网

Java 单击时更改底部导航图标

Java 单击时更改底部导航图标,java,android,bottomnavigationview,Java,Android,Bottomnavigationview,我想将用户在底部导航中单击的图标更改为另一个图标,以向用户显示他所处的当前片段。我在网上找到了类似的问题和答案,但没有一个对我有效,我也不知道我的代码有什么不同 我做的第一件事就是创建一个这样的选择器 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable=

我想将用户在底部导航中单击的图标更改为另一个图标,以向用户显示他所处的当前片段。我在网上找到了类似的问题和答案,但没有一个对我有效,我也不知道我的代码有什么不同

我做的第一件事就是创建一个这样的选择器

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/chat_blue_24dp" android:state_checkable="true"/>
  <item android:drawable="@drawable/chat" android:state_checked="false"/>
</selector>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/navigation_request"
    android:icon="@drawable/requests"
    android:title="@string/title_requests"
     />

<!--just here for test-->
<item
    android:id="@+id/navigation_chat"
    android:icon="@drawable/chat_selector"
    android:title="@string/title_chat"
     />
<item
    android:id="@+id/navigation_groups"
    android:icon="@drawable/ic_group_24dp"
    android:title="@string/title_groups"
     />

<item
    android:id="@+id/navigation_friends"
    android:icon="@drawable/friends"
    android:title="@string/title_friends"
     />

</menu>
这是我在活动中处理点击的地方

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
        = item -> {
    Fragment fragment;


    switch (item.getItemId()) {
        case R.id.navigation_request:
            getSupportActionBar().setTitle("Request");
            loadFragment(requestFragment);
            return true;

        case R.id.navigation_chat:
            // toolbar.setTitle("Chat");
            getSupportActionBar().setTitle("Chat");
            loadFragment(chatsFragment);
            return true;

        case R.id.navigation_friends:
            // toolbar.setTitle("Friends");
            getSupportActionBar().setTitle("Friends");
            loadFragment(friendsFragment);
            return true;

        case R.id.navigation_groups:
            // toolbar.setTitle("Chat");
            getSupportActionBar().setTitle("My Groups");
            loadFragment(groupsFragment);
            return true;

            default:
                return false;

    }
};

在res中创建颜色文件夹

res -> Android Resource Directory -> color
创建颜色选择器:navigation_state.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true"
        android:color="@color/selected_color" />
    <item android:color="@color/normal_color" />
</selector>

设置项目图标色调和文本颜色

<com.google.android.material.bottomnavigation.BottomNavigationView
   //***
    app:itemIconTint="@color/navigation_state"
    app:itemTextColor="@color/navigation_state"
  //***
  />


我用过材料设计。无所谓

在res中创建颜色文件夹

res -> Android Resource Directory -> color
创建颜色选择器:navigation_state.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true"
        android:color="@color/selected_color" />
    <item android:color="@color/normal_color" />
</selector>

设置项目图标色调和文本颜色

<com.google.android.material.bottomnavigation.BottomNavigationView
   //***
    app:itemIconTint="@color/navigation_state"
    app:itemTextColor="@color/navigation_state"
  //***
  />


我用过材料设计。不要紧

您可以使用底部导航视图的颜色选择器。对你来说更简单。我怎么做让我几分钟你可以使用底部导航视图的颜色选择器。对你来说更简单。我怎么做?让我几分钟