我想更改所选项目的整个图标,而不是底部导航视图中的颜色。我有每个图标的选择器,但我不知道在哪里添加该图像选择器。请任何人告诉我解决方案。

码:

private void handleBottomNavigationItemSelected(MenuItem menuItem) {
    menuItem.setChecked(true);
    switch (menuItem.getItemId()) {
        //Replacing the main content with ContentFragment Which is our Inbox View;
        case R.id.action_calendar:
            switchFragment(new PatientAppointmentStatusFragment(), "TODAY");
            break;
        case R.id.action_case_sheets:
            switchFragment(new CaseSheetFragment(), "Case Sheet");
            break;
        case R.id.action_history:
            switchFragment(new HistoryFragment(), "History");
            break;
        case R.id.action_reports:
            switchFragment(new ReportsFragment(), "Reports");
            break;
        case R.id.action_billing:
            switchFragment(new BillingFragment(), "Billing");
            break;

    }
}


菜单

<?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:id="@+id/action_calendar"
        android:enabled="true"
        android:icon="@drawable/menu_calendar_bg"
        android:title="@string/menu_calendar"
        app:showAsAction="always|withText" />
    <item
        android:id="@+id/action_case_sheets"
        android:enabled="true"
        android:icon="@drawable/menu_case_sheets_bg"
        android:title="@string/menu_case_sheets"
        app:showAsAction="always|withText" />
    <item
        android:id="@+id/action_history"
        android:enabled="true"
        android:icon="@drawable/menu_history_bg"
        android:title="@string/menu_history"
        app:showAsAction="always|withText" />

    <item
        android:id="@+id/action_reports"
        android:enabled="true"
        android:icon="@drawable/menu_reports_bg"
        android:title="@string/menu_reports"
        app:showAsAction="always|withText" />

    <item
        android:id="@+id/action_billing"
        android:enabled="true"
        android:icon="@drawable/menu_billing_bg"
        android:title="@string/menu_billing"
        app:showAsAction="always|withText" />

</menu>


这是底部导航视图xml的代码。

<BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="@dimen/margin_48dp"
        android:layout_alignParentBottom="true"
        app:itemBackground="@drawable/tab_background"
        app:itemIconTint="@color/navigation_item_color"
        app:itemTextColor="@color/navigation_item_color"
        app:menu="@menu/bottom_navigation_main" />


我尝试了以下链接,但不适用于我。

链接Android: Bottom Navigation View - change icon of selected item

最佳答案

您应该在res文件夹中创建一个文件夹颜色。在res / color文件夹中,创建一个名称为“ navigation_item_color”的文件,并使用以下代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--state is enabled and checked-->
    <item android:color="@color/white"  android:state_enabled="true" android:state_checked="true" />
    <!--state is enabled and not checked-->
    <item android:color="@color/colorPrimaryDark" android:state_enabled="true" android:state_checked="false" />
    <!--state (menu item) is disabled -->
    <!--   <item android:state_enabled="false" android:color="@color/light_black"  />-->
</selector>

10-07 16:33