Подтвердить что ты не робот

Как добавить заголовок в мою группу меню

Я хочу разделить группы, указав им заголовок или разделитель, но я не могу найти параметр title для элемента группы.

Есть ли способ добавить заголовок или разделитель?

<group android:id="@+id/menu_group_sort" >
        <item
            android:id="@+id/menu_sort_relevance"
            android:showAsAction="never"
            android:title="@string/sort_relevance"/>
        <item
            android:id="@+id/menu_sort_rating"
            android:showAsAction="never"
            android:title="@string/sort_rating"/>

    </group>
4b9b3361

Ответ 1

Я использую этот код для своего проекта, посмотрите:

<item
    android:title="Search Option"
    android:id="@+id/menu_search_option"
    android:showAsAction="ifRoom|withText">
    <menu>
        <group>
            <item
                android:id="@+id/menuSearchFilmEpisode"
                android:title="Episode"/>
            <item
                android:id="@+id/menuSearchActor"
                android:title="Actor"/>
            <item
                android:id="@+id/menuSearchDirector"
                android:title="Director"/>
        </group>
    </menu>
</item>

И в результате у меня есть группа с текстом в виде значка на панели действий. Надеюсь, что это поможет.

Ответ 2

Возможно, за два года слишком поздно, но подумал, что это может быть полезно для тех, кто сталкивается с этой проблемой...

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
    android:id="@+id/group_one">
    <item android:title="Group Title">
        <menu>
            <item
                android:id="@+id/group_item_one"
                android:title="Item one"/>
            <item
                android:id="@+id/group_item_two"
                android:title="Item two"/>
            <item
                android:id="@+id/group_item_three"
                android:title="Item three"/>
        </menu>
    </item>
</group>
<group
    android:id="@+id/group_two">
    <item
        android:id="@+id/group_two_item_one"
        android:title="Item one"/>
</group>

Ответ 3

Хотя это может быть не лучший подход, я считаю, что это может помочь вам. Как насчет того, что вы добавляете дополнительные ограничения в качестве "заголовков" внутри групп, вы также можете создать стиль для этих объектов, чтобы они могли показывать нужный цвет.

 <?xml version="1.0" encoding="utf-8"?>
    <menu
        xmlns:android="http://schemas.android.com/apk/res/android">
        <group>
            <item
                android:title="menu1"
                android:enabled="false"
                android:checkable="false">
            </item>
            <item
                android:title="opt1">
            </item>
            <item
                android:title="opt2">
            </item>
            <item
                android:title="opt3">
            </item>
        </group>
        <group>
            <item
                android:title="menu2"
                android:enabled="false"
                android:checkable="false">
            </item>

            <item
                android:title="opt4">
            </item>
            <item
                android:title="opt5">
            </item>
        </group>
    </menu>

Вы также можете попробовать что-то подобное, используя java.

@Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        menu.addSubMenu(Menu.NONE, 1, 1, "SubMenu");
        menu.add(1, 2, 2, "Item");
        menu.add(1, 3, 3, "Item");

        menu.addSubMenu(Menu.NONE, Menu.NONE, 4, "SubMenu");
        menu.add(4, 5, 5, "Item");
        menu.add(4, 6, 6, "Item");
        menu.add(4, 7, 7, "Item");

        return true;
    }

Параметры

  • идентификатор_группы Идентификатор группы, в который этот элемент должен быть частью. Это также можно использовать для определения групп элементов для изменений состояния партии. Обычно используйте NONE, если элемент не должен находиться в группе.
  • Itemid Уникальный идентификатор элемента. Используйте NONE, если вам не нужен уникальный идентификатор.
  • заказ Заказ на предмет. Используйте NONE, если вам не нужен порядок. См. GetOrder().
  • название Текст, отображаемый для элемента.

Тем не менее, я считаю, что оба должны иметь тот же результат.

Надеюсь, это поможет вам.

Ответ 4

Просто дайте уникальный идентификатор каждой группе. Он автоматически создаст разделитель.

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
    android:id="@+id/group_items"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_profile"
        android:icon="@drawable/ic_profile"
        android:title="@string/title_profile" />

    <item
        android:id="@+id/nav_notifications"
        android:icon="@drawable/ic_notifcation"
        android:title="@string/title_notifications" />

</group>

<group
    android:id="@+id/group_settings"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_privacy_policy"
        android:title="@string/privacy_policy" />
    <item
        android:id="@+id/nav_about_us"
        android:title="@string/nav_about_us" />
</group>

Ответ 5

Как мы все знаем, элемент node может иметь заголовок, а item- node может быть дочерним элементом меню node, далее меню node может быть дочерний элемент - node, а группа - node может быть дочерним элементом меню - node.

поэтому все, что нам нужно сделать, это сохранить группу внутри иерархии меню rootMenu-itemWithTitle.

как это, используется в качестве меню NavigationView:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  tools:context=".activity.MainActivity">`

    <item android:title="@string/drawer_group_book">
        <menu>
            <group android:id="@+id/nav_group_book"
                android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_book_in_stock"
                    android:icon="@drawable/vector_in_stock"
                    android:title="@string/drawer_menu_in_stock"/>
                <item
                    android:id="@+id/nav_book_wish_list"
                    android:icon="@drawable/vector_wish"
                    android:title="@string/drawer_menu_wish_list"/>
                <item
                    android:id="@+id/nav_book_lent_out"
                    android:icon="@drawable/vector_out"
                    android:title="@string/drawer_menu_lent_out"/>
                <item
                    android:id="@+id/nav_book_borrowed"
                    android:icon="@drawable/vector_in"
                    android:title="@string/drawer_menu_borrowed"/>
            </group>
        </menu>
    </item>

    <item android:title="Communicate">
        <menu>
            <item
                android:id="@+id/nav_share"
                android:icon="@drawable/ic_menu_share"
                android:title="Share"/>
            <item
                android:id="@+id/nav_send"
                android:icon="@drawable/ic_menu_send"
                android:title="Send"/>
        </menu>
    </item>

</menu>