【问题标题】:Setting checked and unchecked state for bottom navigation bar not working [Android]为底部导航栏设置选中和未选中状态不起作用 [Android]
【发布时间】:2018-10-28 18:53:42
【问题描述】:

我正在创建一个应用程序,并在其中创建了一个底部导航栏。现在我想要的是为导航栏项目的选定/未选定状态设置单独的颜色。所以我创建了一个 xml 文件并将其设置为导航栏的项目色调和文本颜色,如下所示:

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

并在主菜单中添加导航栏为:

<android.support.design.widget.BottomNavigationView
        android:id="@+id/mainNav"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:background="@android:color/white"
        android:elevation="8dp"
        app:itemIconTint="@color/nav_bar_item_state"
        app:itemTextColor="@color/nav_bar_item_state"
        app:menu="@menu/nav_items"></android.support.design.widget.BottomNavigationView>

我从这个链接得到了这个解决方案:

Selected tab's color in Bottom Navigation View

但是当我运行应用程序时,它会因错误“无法充气导航栏”而崩溃。我究竟做错了什么?任何帮助,将不胜感激。

更新: 我通过在可绘制文件中创建选择器文件尝试了同样的事情,但不幸的是它也不起作用。

【问题讨论】:

标签: android material-design


【解决方案1】:

试试这个:-
onNavigationItemSelected() 中设置item.setCheckable(true)

public boolean onNavigationItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.navigation_home:
            item.setCheckable(true);
            mTextMessage.setText(R.string.title_home);
            return true;
    }
    return false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多