2015-06-25 8 views
17

Provo a implementare un cassetto con un nuovo componente del design del materiale: NavigationView.Come mantenere una singola modalità di controllo controllabile nel menu del cassetto per NavigationView quando aggiungiamo una sezione?

Funziona molto bene. Quando seleziono un oggetto cambia il suo cambio di colore bene con 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> 

Il problema viene quando cerco di utilizzare la sezione nel cassetto. È questo il caso, non posso usare android:checkableBehavior="single" e ho perso il cambio di colore nella selezione di un oggetto.

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

Ho segnalato questo problema al Google Developer scorsa settimana. È stato assegnato e verrà rilasciato nel prossimo aggiornamento. Quindi devi solo aspettare l'aggiornamento dei repository di supporto –

+1

Esiste un bug id in modo che possiamo tenere traccia di questo? –

+0

Puoi fornire l'id del bug @Fondesa – osrl

risposta

1

Per risolvere il problema fino a quando il bug riportato da Fondesa è fisso è possibile utilizzare questo:

Menu Definizione

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

Styling

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

Questa volontà prope altamente selezionata la voce del menu quando selezionata.

Nota che questo non affronterà il requisito:

android:checkableBehavior="single" 

Si dovrà gestire manualmente.

5

provare questo:

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

è possibile controllare questa soluzione per i dettagli .. I am unable to set a submenu item as checked