1


新版本的支持设计(23.1.0 和 23.1.1)破坏了 NavigationView
普通菜单中的菜单
在此处输入图像描述

新 api 版本中的菜单
在此处输入图像描述

菜单xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="none">
    <item
        android:id="@+id/navigation_item_1"
        android:icon="@drawable/ic_logout"
        android:title="@string/navigation_list_log_out" />

    <item
        android:id="@+id/navigation_item_2"
        android:icon="@drawable/ic_logout"
        android:title="@string/navigation_list_log_out" />

    <item
        android:id="@+id/navigation_item_3"
        android:icon="@drawable/ic_logout"
        android:title="@string/navigation_list_log_out" />
</group>

所以最后一个正确的版本是

compileSdkVersion 23
构建工具版本“23.0.1”
编译'com.android.support:design:23.0.1'

也许谷歌知道如何在新版本中快速修复这个错误?

4

3 回答 3

0

将'com.android.support:design: 23.0.1 ' 更改为 'com.android.support:design: 23.1.1 ' 然后同步项目。该版本确实有效。

于 2016-10-31T18:48:30.917 回答
0

不幸的是,支持库的版本 23.1.0 - 23.1.1 似乎破坏了android:checkableBehaviour属性的行为以及menuItem.setChecked(boolean)方法。

您可能需要密切关注此AOSP 问题,其中详细说明了这些行为被破坏的原因。

按照该问题中的建议,尝试调用类似mNavView.setItemTextColor(mNavView.getItemTextColor)的解决方法。

于 2015-11-28T05:00:42.560 回答
0

请把none改为single。

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
    <item
        android:id="@+id/navigation_item_1"
        android:icon="@drawable/ic_logout"
        android:title="@string/navigation_list_log_out" />

    <item
        android:id="@+id/navigation_item_2"
        android:icon="@drawable/ic_logout"
        android:title="@string/navigation_list_log_out" />

    <item
        android:id="@+id/navigation_item_3"
        android:icon="@drawable/ic_logout"
        android:title="@string/navigation_list_log_out" />
</group>
</menu>
于 2016-01-18T15:24:01.897 回答