2015-06-11 18 views
35

XML'den gezinme çekmecesi menüsümü oluşturmak için yeni NavigationView kullanıyorum. Uygulamamın bölümleri arasında geçiş yapan bölüm menü öğeleri ile ayarlar arasında bir ayırıcı yerleştirmem ve alt kısımdaki & destek bağlantılarına yardım etmem gerekiyor. Ben gördüğüm bütün örneklerdeBaşlıklar olmadan NavigationView menüsünde bölücüler nasıl alınır?

, bu bir <item> içinde başka <menu> koyarak yapılabilir göreceksiniz ancak <item>android:title niteliği olmasını gerektirir, bu yüzden yapabileceğimiz en iyi başlığı boş yapmaktır ayarlardan önce boş bir alan bırakır ve & geri bildirimine yardımcı olur.

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/nav_section_1" 
      android:icon="@drawable/ic_dashboard" 
      android:title="@string/section_1" 
      android:checked="true" /> <!-- default selection --> 
     <item 
      android:id="@+id/nav_section_2" 
      android:icon="@drawable/ic_dashboard" 
      android:title="@string/section_2" /> 
     <item 
      android:id="@+id/nav_section_3" 
      android:icon="@drawable/ic_dashboard" 
      android:title="@string/section_3" /> 
    </group> 

    <item android:title="@null"> <!-- I don't want a title or space here! --> 
     <menu> 
      <item 
       android:id="@+id/nav_settings" 
       android:icon="@drawable/ic_settings" 
       android:title="@string/settings" /> 
      <item 
       android:id="@+id/nav_help_feedback" 
       android:icon="@drawable/ic_help" 
       android:title="@string/help_feedback" /> 
     </menu> 
    </item> 
</menu> 

Ben <menu>, <item> ve <group> etiketleri çeşitli kombinasyonlarını denedim ama çalışacak bir şey bulamadım. Sadece Orada sahiptir

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/nav_section_1" 
      android:icon="@drawable/ic_dashboard" 
      android:title="@string/section_1" 
      android:checked="true" /> <!-- default selection --> 
     <item 
      android:id="@+id/nav_section_2" 
      android:icon="@drawable/ic_dashboard" 
      android:title="@string/section_2" /> 
     <item 
      android:id="@+id/nav_section_3" 
      android:icon="@drawable/ic_dashboard" 
      android:title="@string/section_3" /> 
    </group> 

    <group> <!-- This puts @string/section_3 as the group title! --> 
     <menu> 
      <item 
       android:id="@+id/nav_settings" 
       android:icon="@drawable/ic_settings" 
       android:title="@string/settings" /> 
      <item 
       android:id="@+id/nav_help_feedback" 
       android:icon="@drawable/ic_help" 
       android:title="@string/help_feedback" /> 
     </menu> 
    </item> 
</menu> 

sadece menü XML açıklama kullanarak bunu yapmak için kolay bir yol olarak: Bu örneğin grup başlığı olarak önceki gruptaki son öğeyi kullanmanın sorunu var. Google'ın bu çok davranışları Material design spec.

Settings and support

DÜZENLEME:

Henüz başka yakın girişimi: Bu üst kısmında yer bölücünün üstüne ve altına öğeler arasında hiçbir boşluk bırakır, ama hala var

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:title="@null"> <!-- Still a space here though! --> 
     <menu> 
      <group android:checkableBehavior="single"> <!-- And this checkable behavior behaves strangely for some reason --> 
       <item 
        android:id="@+id/nav_section_1" 
        android:icon="@drawable/ic_dashboard" 
        android:title="@string/section_1" 
        android:checked="true" /> <!-- default selection --> 
       <item 
        android:id="@+id/nav_section_2" 
        android:icon="@drawable/ic_dashboard" 
        android:title="@string/section_2" /> 
       <item 
        android:id="@+id/nav_section_3" 
        android:icon="@drawable/ic_dashboard" 
        android:title="@string/section_3" /> 
      </group> 
     </menu> 
    </item> 

    <group> <!-- Finally, no space or title here! --> 
     <item 
      android:id="@+id/nav_settings" 
      android:icon="@drawable/ic_settings" 
      android:title="@string/settings" /> 
     <item 
      android:id="@+id/nav_help_feedback" 
      android:icon="@drawable/ic_help" 
      android:title="@string/help_feedback" /> 
    </item> 
</menu> 

şimdi. Ayrıca, android:checkableBehavior="single" garip davranır. Öğeler, ilk seçildiğinde seçilmez ve diğerleri seçildikten sonra öğeler seçilmez. Gönderen

+0

Sizin için mükemmel olan yanıtımı aşağıda bulabilirsiniz. [NaviagtionMenuList Divider] (http://stackoverflow.com/questions/30916946/android-navigationview-menu-group-divider/40259846#40259846) –

+0

Cevabınızı kontrol etmelisiniz, tamamlanmamış etiketleriniz var ve çalışmıyor –

cevap

98

: Eğer sadece group Etiketleri benzersiz kimlikleri vermek gerekir gibi NavigationView: how to insert divider without subgroup?

görünüyor.

<group android:id="@+id/my_id"> 
    <!-- Divider will appear above this item --> 
    <item ... /> 
</group> 

cevap dediği gibi:

[NavigationView]

bir bölücü grup kimliği Bu burada soru için kesin çözümdür

+8

İyi bulmak ! Aramamla ilgili bir soru bulamadı. Gruplara kimlik eklemek hile yaptı. –

+0

Çok teşekkür ederim, @Kenny Worden !!!! –

+0

Ama sanırım android: checkableBehavior = "single" 'gruplara sahip olamıyoruz. İçindekiler – user3175580

2

değiştirildi her zaman yaratacaktır.

<?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:id="@+id/menu_top" 
     android:checkableBehavior="single"> 
     <item android:title="Switch Team"> 
      <menu> 
       <item 
        android:id="@+id/team" 
        android:title="" 
        app:actionLayout="@layout/layout_spinner_for_drawer"/> 
      </menu> 
     </item> 
    </group> 

    <group 
     android:id="@+id/menu_bottom" 
     android:checkableBehavior="single"> 
      <item 
       android:id="@+id/nav_home" 
       android:icon="@drawable/home" 
       android:title="Home" /> 
      <item 
       android:id="@+id/nav_share" 
       android:icon="@drawable/sharebox" 
       android:title="Sharebox" /> 
      <item 
       android:id="@+id/nav_recognize" 
       android:icon="@drawable/recognize" 
       android:title="Recognize" /> 
      <item 
       android:id="@+id/nav_contact_us" 
       android:icon="@drawable/contactus" 
       android:title="Contact Us" /> 
      <item 
       android:id="@+id/nav_logout" 
       android:icon="@drawable/signout" 
       android:title="Logout" /> 
    </group> 
</menu> 
İlgili konular