我正在尝试设置弹出窗口的项目样式,使它们看起来像是一张下面的按钮列表。唯一的问题是我无法改变弹出项目的任何内容。我试图在我的应用程序样式中设置全局popupMenuStyle
,但这没有任何意义。我试图在菜单项上设置actionLayout但仍然没有变化。
如何更改弹出菜单项的样式?
我的菜单:
<?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 :(得分: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在您的应用中呈现弹出菜单的方式。