Как добавить заголовок в мою группу меню
Я хочу разделить группы, указав им заголовок или разделитель, но я не могу найти параметр 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>
Ответы
Ответ 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>