在Android中更改背景popupMenu

use*_*307 11 android android-theme android-styles android-popupwindow

我试图改变popupmenu的背景,但我的实现不起作用.

这是我的代码:

<style name="MyHoloLight" parent="android:Theme.Holo.Light">
    <item name="android:popupMenuStyle">@style/popupMenuStyle</item>
</style>
<style name="popupMenuStyle" parent="@android:style/Widget.PopupMenu">
    <item name="android:popupBackground">@color/bgPopumMenu</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在AndroidManifest.xml中应用

<application
        android:hardwareAccelerated="true"
        android:label="@string/app_name"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/MyHoloLight">
Run Code Online (Sandbox Code Playgroud)

Raj*_*aju 31

以下款式适合我.

<style name="popupMenuStyle" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:textColor">@color/color_white</item>
    <item name="android:itemBackground">@color/color_red</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在这里,父母应该是AppTheme的父母

并在您的代码中使用这些行.

Context wrapper = new ContextThemeWrapper(context, R.style.popupMenuStyle);
PopupMenu popup = new PopupMenu(wrapper, v);
Run Code Online (Sandbox Code Playgroud)

我希望它能奏效.


Piy*_*ush 5

如果bgPopumMenu是你的图像,那么使用它.

<style name="popupMenuStyle" parent="@android:style/Widget.PopupMenu">
<item name="android:popupBackground">@drawable/bgPopumMenu</item>
</style>
Run Code Online (Sandbox Code Playgroud)

您需要将自己的风格应用到AppTheme中.所以试试吧.

<style name="AppTheme" parent="android:Theme.Holo.Light">
<item name="android:popupMenuStyle">@style/popupMenuStyle</item>
</style>
<style name="popupMenuStyle" parent="@android:style/Widget.PopupMenu">
<item name="android:popupBackground">@color/bgPopumMenu</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用 - 背景仍然是灰色的. (6认同)
  • 这没用 (3认同)

var*_*jsi 5

我对@Raju 的代码和以下对我有用的样式做了一些更改,

Context wrapper = new ContextThemeWrapper(context,R.style.popupMenuStyle);
PopupMenu popup = new PopupMenu(wrapper, YourView);
Run Code Online (Sandbox Code Playgroud)

这是我的风格,

<style name="popupMenuStyle" parent="android:Theme.Holo.Light.DarkActionBar">
    <item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item>
    <item name="android:textColor">@color/White</item>
</style>

<style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@color/color_semi_transparent</item>       
</style>
Run Code Online (Sandbox Code Playgroud)