0

Я пытаюсь стилизовать элементы своего всплывающего окна, чтобы они выглядели как список кнопок ниже eachother. Единственная проблема заключается в том, что я не могу изменить что-либо из всплывающих элементов. Я попытался установить глобальный popupMenuStyle в моем стиле приложения, но это ни к чему. Я попытался установить actionLayout на пункты меню, но все равно никаких изменений.Styling popup menu item's

Как изменить стиль элементов моего всплывающего меню?

Мое меню:

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

Как открыть всплывающее меню:

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

ответ

0

Попробуйте это как часть вашего файла 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> 

, а затем в вашем Файл макета xml для операции добавьте эту строку:

style="@style/AppTheme" 

или в файле AndroidManifest.xml, добавьте в тег приложения:

android:theme="@style/AppTheme" 

Это повлияет как Android оказывает всплывающее меню в приложении.

+0

Я по-прежнему вижу стиль всплывающих окон по умолчанию –