Comment conserver le mode simple checklabehavior dans le menu de tiroir pour NavigationView lorsque nous ajoutons une section?

j'ai essayer de mettre en œuvre un tiroir avec un nouveau composant de la conception de matériel : la fenêtre des éléments.

C'est le travail très bien. Quand je sélectionne un élément change sa couleur changer bien avec android:checkableBehavior="single".

<group
    android:checkableBehavior="single">

    <item
        android:id="@+id/drawer_home"
        android:checked="true"
        android:icon="@drawable/ic_home_black_24dp"
        android:title="@string/home"/>

    <item
        android:id="@+id/drawer_favourite"
        android:icon="@drawable/ic_favorite_black_24dp"
        android:title="@string/favourite"/>
    ...

    <item
        android:id="@+id/drawer_settings"
        android:icon="@drawable/ic_settings_black_24dp"
        android:title="@string/settings"/>

</group>

Le problème viens quand j'essaie d'utiliser l'article dans le tiroir. C'est cette affaire, Je ne peux pas utiliser android:checkableBehavior="single" et j'ai perdu le changement de couleur dans la sélection d'un élément.

<item
    android:id="@+id/section"
    android:title="@string/section_title">

    <menu>
        <item
            android:id="@+id/drawer_favourite"
            android:icon="@drawable/ic_favorite_black_24dp"
            android:title="@string/favourite"/>

        <item
            android:id="@+id/drawer_downloaded"
            android:icon="@drawable/ic_file_download_black_24dp"
            android:title="@string/downloaded"/>
    </menu>

</item>
18
demandé sur lopez.mikhael 2015-06-25 11:27:56

2 réponses

essaye ceci:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">

        <item
            android:id="@+id/drawer_home"
            android:checked="true"
            android:icon="@drawable/ic_home_black_24dp"
            android:title="@string/home"/>

       <item
            android:id="@+id/drawer_favourite"
            android:icon="@drawable/ic_favorite_black_24dp"
            android:title="@string/favourite"/>
       ...

       <item
            android:id="@+id/drawer_settings"
            android:icon="@drawable/ic_settings_black_24dp"
            android:title="@string/settings"/>
       <item
            android:id="@+id/section"
            android:title="@string/section_title">

            <menu>
                <group android:checkableBehavior="single">
                    <item
                        android:id="@+id/drawer_favourite"
                        android:icon="@drawable/ic_favorite_black_24dp"
                        android:title="@string/favourite"/>

                    <item
                        android:id="@+id/drawer_downloaded"
                        android:icon="@drawable/ic_file_download_black_24dp"
                        android:title="@string/downloaded"/>
                </group>
            </menu>

       </item>

    </group>
</menu>

vous pouvez vérifier cette solution pour plus de détails.. je suis incapable de définir un élément de sous-menu que checked

7
répondu abidsplanet 2017-05-23 12:24:20

comme solution de contournement jusqu'à ce que le bug signalé par Fondesa soit corrigé, vous pouvez utiliser ceci:

Menu Définition

<item android:checkable="true" ...>

Style

<item android:state_selected="true" android:color="@color/error_color"/>

ceci activera correctement l'élément du menu lorsqu'il est sélectionné.

Notez que ce ne permettront pas de répondre à l'exigence:

android:checkableBehavior="single"

vous devrez gérer cela manuellement.

1
répondu infinite-loop 2015-07-21 17:53:11