Programing

Android NavigationView 메뉴 그룹 구분선

lottogame 2020. 11. 3. 07:32
반응형

Android NavigationView 메뉴 그룹 구분선


Android 지원 디자인 라이브러리는 NavigationView를 제공합니다.

 <android.support.design.widget.NavigationView
    ...
    app:menu="@menu/navigation_drawer_items" />

menu / navigation_drawer_items :

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

    <group android:checkableBehavior="single">
        <item .../>
        ...
    </group>

    <group android:checkableBehavior="single">
        <item .../>
        ...
    </group>

</menu>

그룹 사이에 구분선, 구분선 또는 공백을 추가하는 방법 (그림과 같이)?

여기에 이미지 설명 입력


다만 각 그룹에 고유 한 ID를 제공합니다. 구분 기호가 자동으로 생성됩니다.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:id="@+id/group_feature"
        android:checkableBehavior="single">
        <item android:id="@+id/navdrawer_item_map"
            android:checked="true"
            android:icon="@drawable/ic_drawer_map"
            android:title="@string/navdrawer_item_map"/>

    </group>
    <group android:id="@+id/group_settings"
        android:checkableBehavior="single">
        <item android:id="@+id/navdrawer_item_settings"
            android:icon="@drawable/ic_drawer_settings"
            android:title="@string/navdrawer_item_settings"/>

    </group>
</menu>

이런 식으로합니다.

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

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_home"
            android:icon="@drawable/ic_dashboard"
            android:title="Home" />
        <item
            android:id="@+id/nav_messages"
            android:icon="@drawable/ic_event"
            android:title="Messages" />
        <item
            android:id="@+id/nav_friends"
            android:icon="@drawable/ic_headset"
            android:title="Friends" />
        <item
            android:id="@+id/nav_discussion"
            android:icon="@drawable/ic_forum"
            android:title="Discussion" />
    </group>

    <item android:title="Sub items">
        <menu>
            <item
                android:icon="@drawable/ic_dashboard"
                android:title="Sub item 1" />
            <item
                android:icon="@drawable/ic_forum"
                android:title="Sub item 2" />
        </menu>
    </item>

</menu>

이 코드는 Chris Barnes https://github.com/chrisbanes/cheesesquare가 만든 디자인 라이브러리 예제 앱에서 가져 왔습니다.


이 방법으로 사용하고 있습니다.

<group
        android:id="@+id/group1"
        android:checkableBehavior="single">
        <item
            android:id="@+id/menu1"
            android:icon="@drawable/somedrawable"
            android:title="Lorem ipsum" />
</group>
<group
        android:id="@+id/group2"
        android:checkableBehavior="single">
        <item
            android:id="@+id/menu2"
            android:icon="@drawable/somedrawable"
            android:title="Dolor it amet" />
</group>

ID는 중요합니다 (+ id / group1 및 + id / group2). ID가 없으면 구분선이 표시되지 않습니다. 내 앱에서 작동합니다.


NavigationMenuList의 구분선은 메뉴 항목을 그룹화하여 달성했지만 필요한 그룹 ID @ + id를 제공하고 있는지 확인하십시오. 아래는 당신을 위해 작동하는 코드입니다.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
    android:id="@+id/gp_one"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/ic_avatar"
        android:title="Home" />
</group>

<group
    android:id="@+id/gp_two"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_account"
        android:icon="@drawable/ic_avatar"
        android:title="My Account" />
    <item
        android:id="@+id/nav_orders"
        android:icon="@drawable/ic_avatar"
        android:title="My Orders" />
    <item
        android:id="@+id/nav_wishlist"
        android:icon="@drawable/ic_avatar"
        android:title="My Wishlist" />
</group>

<group
    android:id="@+id/gp_three"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_rateus"
        android:icon="@drawable/ic_avatar"
        android:title="Rate Us" />
    <item
        android:id="@+id/nav_share"
        android:icon="@drawable/ic_avatar"
        android:title="Share" />
    <item
        android:id="@+id/nav_logout"
        android:icon="@drawable/ic_avatar"
        android:title="Logout" />
</group>


<item android:title="title_name">사이에 텍스트를 추가 할 수 있습니다.</item>

<?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="single">
        <item
            android:id="@+id/nav_display_image"
            android:title="Load Image"
            android:icon="@drawable/ic_menu_gallery"
            app:showAsAction="always"

            app:actionLayout="@layout/switch_nav_drawer"/>
        <item
            android:id="@+id/nav_camera"
            android:icon="@drawable/ic_menu_camera"
            android:title="Saved News" />
        <item
            android:id="@+id/nav_gallery"
            android:icon="@drawable/ic_menu_gallery"
            android:title="Gallery" />
        <item
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/ic_menu_slideshow"
            android:title="Slideshow" />

    </group>

    <item android:title="Settings">
        <menu>
            <item
                android:id="@+id/nav_manage"
                android:icon="@drawable/ic_menu_manage"
                android:title="Tools" />
        </menu>
    </item>

    <item
        android:id="@+id/about_us"
        android:icon="@drawable/ic_info_black_24dp"
        android:title="About Us"></item>


</menu>

참고 URL : https://stackoverflow.com/questions/30916946/android-navigationview-menu-group-divider

반응형