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

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

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

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

Solutions Collecting From Web of "Как добавить заголовок в мою группу меню"

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

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

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

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

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

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

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

параметры

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

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

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

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

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

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

Поэтому все, что нам нужно сделать, это сохранить группу внутри иерархии меню 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>