0

J'essaie de styler les éléments de mon popup afin qu'ils ressemblent à une liste de boutons ci-dessous. Le seul problème est que je ne peux pas changer quoi que ce soit des éléments de la popup. J'ai essayé de définir un popupMenuStyle global dans mon style d'application, mais cela n'a rien à voir. J'ai essayé de définir une actionLayout sur les éléments du menu mais toujours pas de changement. Comment puis-je modifier le style de mes éléments de menu contextuel?Style de menu contextuel de l'article de menu

Mon Menu:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/test1" 
     android:title="Test" /> 
    <item android:id="@+id/test2" 
     android:title="Test 2" /> 
</menu> 

Comment puis-je ouvrir le menu contextuel:

PopupMenu popupMenu = new PopupMenu(getContext(), mButton); 
popupMenu.getMenuInflater().inflate(R.menu.popup_menu, popupMenu.getMenu()); 
popupMenu.show(); 

Répondre

0

Essayez cela dans le cadre de votre fichier styles.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
     <item name="android:popupMenuStyle">@style/PopupMenu</item> 
     <item name="android:textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge</item> 
     <item name="android:textAppearanceSmallPopupMenu">@style/myPopupMenuTextAppearanceSmall</item> 
    </style> 

    <style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> 
     <item name="android:popupBackground">#FFFFFF</item> 
     <item name="android:divider">#444444</item> 
     <item name="android:dividerHeight">1px</item> 
     <item name="android:background">#FFFFFF</item> 
    </style> 

    <style name="myPopupMenuTextAppearanceSmall" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Small"> 
     <item name="android:textColor">#000000</item> 
     <item name="android:textSize">12sp</item> 
     <item name="android:background">#FFFFFF</item> 
    </style> 

    <style name="myPopupMenuTextAppearanceLarge" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large"> 
     <item name="android:textColor">#000000</item> 
     <item name="android:textSize">18sp</item> 
     <item name="android:background">#FFFFFF</item> 
    </style> 

</resources> 

puis dans votre fichier de mise en page xml pour l'activité ajoutez cette ligne:

style="@style/AppTheme" 

ou dans votre fichier AndroidManifest.xml, ajoutez à la balise d'application:

android:theme="@style/AppTheme" 

Cela affectera la façon dont Android rend un menu contextuel dans votre application.

+0

Je vois encore le style de popup par défaut –