Mon élément de menu devient plus grand pour que je veuille les regrouper et créer un séparateur de ligne pour séparer chaque groupe. Qu'est-ce que je devrais faire maintenant ?
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto">
<!--group1-->
<item
Android:id="@+id/action_addtag"
Android:title="@string/add_hashtag_string"
app:showAsAction="never" />
<item
Android:id="@+id/action_block_list"
Android:title="Block"
app:showAsAction="never" />
<item
Android:id="@+id/action_report_list"
Android:title="Report"
app:showAsAction="never" />
<!--group2-->
<item
Android:id="@+id/terms"
Android:title="Terms"
app:showAsAction="never" />
<item
Android:id="@+id/feedback"
Android:title="FeedBack"
app:showAsAction="never" />
<!--group3-->
<item
Android:id="@+id/action_setting"
Android:title="Setting"
app:showAsAction="never" />
</menu>
Tout ce que vous devez faire est de définir un groupe avec un ID unique, j'ai vérifié l'implémentation si le groupe a des identifiants différents, cela créera un diviseur.
Exemple de menu, création du séparateur:
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
tools:context=".MainActivity">
<group Android:id="@+id/grp1">
<item
Android:id="@+id/navigation_item_1"
Android:checked="true"
Android:icon="@drawable/ic_home"
Android:title="@string/navigation_item_1" />
</group>
<group Android:id="@+id/grp2">
<item
Android:id="@+id/navigation_item_2"
Android:icon="@drawable/ic_home"
Android:title="@string/navigation_item_2" />
</group>
j'espère que cela t'aides
MISE À JOUR
pour l'élément de menu peut être vous pouvez l'utiliser
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools">
<item
Android:id="@+id/action_cart"
Android:title="cart"
Android:actionLayout="@layout/cart_update_count"
Android:icon="@drawable/shape_notification"
app:showAsAction="always"/>
</menu>
et le fichier actionLayout sera
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:orientation="vertical">
<View
Android:id="@+id/divider"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/divider"/>
<TextView
Android:id="@Android:id/text"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="?android:attr/selectableItemBackground"
Android:gravity="center_vertical"
Android:textAppearance="?attr/textAppearanceListItemSmall"/>
</LinearLayout>
Assurez-vous d'appeler MenuCompat.setGroupDividerEnabled(menu, true);
lorsque vous gonflez votre menu, sinon les groupes ne seront pas séparés par un séparateur!
Exemple:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_activity_main, menu);
MenuCompat.setGroupDividerEnabled(menu, true);
return true;
}
Et assurez-vous d'avoir différents groupes dans votre menu xml, par exemple:
<menu>
<group Android:id="@+id/sorting" >
<item
Android:id="@+id/action_sorting_new_old"
Android:title="@string/action_sorting_new_old"/>
<item
Android:id="@+id/action_sorting_a_z"
Android:title="@string/action_sorting_a_z"/>
</group>
<group Android:id="@+id/settings">
<item
Android:id="@+id/action_settings"
Android:title="@string/action_settings"/>
</group>
</menu>
Ancienne question, mais les réponses ci-dessus ne fonctionnaient pas pour moi (et je m'oppose à l'ajout de "groupes" pour des éléments uniques). Ce qui a fonctionné, c'était l'ajout d'un élément de style comme suit:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"> <!-- .Light.DarkActionBar"> -->
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">#17161B</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="Android:dropDownListViewStyle">@style/PopupMenuListView</item>//<-add this
</style>
qui fait référence
<style name="PopupMenuListView" parent="@style/Widget.AppCompat.ListView.DropDown">
<item name="Android:divider">#dddddd</item>
<item name="Android:dividerHeight">1dp</item>
</style>
dans le même fichier res/values / styles.xml. J'espère que ça aide!