Soru Başlıksız NavigationView menüsünde bölücüler nasıl alınır?


Yeni kullanıyorum NavigationView XML'den navigasyon çekmece menümüzü oluşturmak için Uygulamamın bölümleri arasında geçiş yapan bölüm menüsü öğeleri ile alt kısımdaki ayarlar ve yardım ve destek bağlantıları arasında bir ayırıcı yerleştirmem gerekiyor.

Gördüğüm tüm örneklerde, bunun başka bir şey koyarak nasıl yapıldığını görüyorum. <menu> içinde <item>, ama <item> sahip olmak gerektirir android:title özniteliği, bu yüzden yapabileceğim en iyi şey, başlıkları boş bırakıp, ayarlar ve yardım ve geri bildirimden önce boş bir alan bırakmasıdır.

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

Çeşitli kombinasyonları denedim <menu>, <item> ve <group> etiketler, ancak işe yarayacak bir şey bulamadınız. Örneğin, önceki gruptaki son öğeyi grup başlığı olarak kullanma sorunu vardır:

<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 XML açıklamasını kullanarak bunu yapmanın kolay bir yolu olmalı. Google bu davranışa sahip Malzeme tasarım özellikleri.

Settings and support

DÜZENLE:

Yine başka bir yakın girişim:

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

Bu, ayırıcının üstündeki ve altındaki öğeler arasında boşluk bırakmaz, ancak şimdi en üstte yer var. Ayrıca android:checkableBehavior="single" garip davranır. Öğeler, ilk seçildiğinde seçilmez ve diğerleri seçildikten sonra öğeler seçilmez.


36
2018-06-11 20:06


Menşei


Aşağıda sizin için mükemmel olan cevabımı kontrol edin. NaviagtionMenuList Bölücü - Ness Tyagi
Cevabınızı kontrol etmelisiniz, tamamlanmamış etiketleriniz var ve çalışmıyor - Gustavo Baiocchi Costa


Cevaplar:


Gönderen: NavigationView: alt grup olmadan bölücü nasıl eklenir?

Görünüşe göre sadece group benzersiz kimlik etiketleri.

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

Cevapın dediği gibi:

[NavigationView], grup kimliği her değiştirildiğinde bir ayırıcı oluşturur


102
2018-06-11 20:24



İyi bul! Aramamla ilgili bir soru bulamadı. Gruplara kimlik eklemek hile yaptı. - Jeff Lockhart
Çok teşekkür ederim, @Kenny Worden !!!! - web_alex
Ama sanırım sahip olamayız android:checkableBehavior="single" gruplar arasında uygulanır. İç çekmek - androidguy
@ user3175580 Bu yorumu gönderdiğinizden beri bir şey değişip değişmediğini bilmiyorum, ancak API'ye göre, bu davranış groups menülerde: developer.android.com/guide/topics/ui/menus.html#groups - Kenneth Worden


Buradaki sorunuz için tam bir çözüm.

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

3
2017-09-13 06:06