1

NavigationView を使用して menu.xml データを NavigationDrawer に表示しています。チェック可能な項目の 2 つのグループがありました。最初のグループでは、同時にチェックされる項目の数に制限はありませんが、2 番目のグループでは、チェックされる項目は 1 つだけです。

使用されているサポート ライブラリのバージョン:

compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.0'

NavigationView に使用される xml コード

<?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">
<group android:checkableBehavior="all" android:id="@+id/navgroup_layers" android:menuCategory="container">
    <item
        android:id="@+id/nav_traffic"
        android:checked="true"
        android:icon="@drawable/ic_traffic_light"
        android:title="@string/Traffic"/>
    <item
        android:id="@+id/nav_text"
        android:checked="true"
        android:icon="@drawable/ic_tooltip_text"
        android:title="@string/text_labels"/>
</group>

<group android:id="@+id/navgroup_cities"
       android:checkableBehavior="single"
       android:menuCategory="container"
    >
    <item
        android:id="@+id/nav_berlin"
        android:checked="true"
        android:icon="@drawable/ic_traffic_light"
        android:title="@string/berlin"/>
    <item
    android:id="@+id/nav_prague"
    android:icon="@drawable/ic_subway"
    android:checked="false"
    android:title="@string/prague"/>
    <item
        android:id="@+id/nav_paris"
        android:checked="false"
        android:icon="@drawable/ic_tooltip_text"
        android:title="@string/paris"/>
</group>

ライブラリを最新のものにアップグレードした後:

compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'

チェック可能な動作が変更されました。今、同じアイテムを複数回クリックすると、それ自体がチェックされ、チェックが解除されますが、別のアイテムを選択すると、すべてがチェックされなくなり、同じアイテムをもう一度クリックした後にのみチェックされます。2 つのバージョンのソース コードを見た後、何が問題なのかわかりませんでした。このチャッキング可能な動作属性は、新しいバージョンではまったく考慮されていないようです。ライブラリまたは実装全体のバグは、突然別の方法で行われる必要がありますか?

4

1 に答える 1

2

のバージョン 23では、メニューの構築方法の構造が完全に変更されました。リリースの Google+ 投稿のコメントに記載されているように、現在はRecyclerViewNavigationViewに基づいています。

NavigationMenuPresenter の Adapter ソース コード(メニュー項目の表示方法と保存方法を制御する) から、チェックされた項目が 1 つだけ保存され、1 つの項目をチェックすると他のチェックされた項目のチェックが解除されるように見えます。

これには、フィールドを考慮に入れるために新しいバグレポートを提出する必要があります。NavigationViewcheckableBehavior

于 2015-11-06T16:23:07.907 に答える