支持设计v.23.1.0和v.23.1.1在NavigationView中打破了菜单

时间:2015-11-18 18:12:42

标签: android android-support-library androiddesignsupport android-navigationview


支持设计的新版本(23.1.0和23.1.1)在NavigationView中打破了菜单 普通菜单
enter image description here

新api版本的菜单
enter image description here

菜单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
buildToolsVersion "23.0.1"
compile 'com.android.support:design:23.0.1'

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

3 个答案:

答案 0 :(得分:0)

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

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

尝试使用mNavView.setItemTextColor(mNavView.getItemTextColor)之类的方法作为解决方法,如该问题中所建议的那样。

答案 1 :(得分:0)

请将none更改为单身。

<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>

答案 2 :(得分:0)

更改&#39; com.android.support:design: 23.0.1 &#39;到&#39; com.android.support:design: 23.1.1 &#39;然后同步项目。该版本确实有效。