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

时间:2017-09-25 10:32:43

标签: android bottomnavigationview

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

代码:

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

1 个答案:

答案 0 :(得分:1)

您应该在 res 文件夹中创建颜色文件夹.Into 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>