在操作栏ShareActionProvider下拉列表上设置自定义背景颜色

我试图设置一个自定义的背景颜色ShareActionProvider dropdownlist,我已经改变了使用这个http://jgilfelt.github.io/android-actionbarstylegenerator/的holo actionbar颜色

正如你可以在下面的图片中看到突出显示的点,我可以将操作栏背景颜色更改为橙​​色,但ShareActionProvider下拉列表背景颜色仍为灰色。 有没有人有任何想法如何改变它在styles.xml中编辑我的主题?

在这里输入图像描述

非常感谢您的宝贵时间。


您将需要重写属性listPopupWindowStyle

从外观来看,你使用的是Theme.Holo.Light 。 将此添加到您的基本主题中:

<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    ....
    <item name="android:listPopupWindowStyle">@style/MyListPopupWindowStyle</item>
</style>

现在像这样定义MyListPopupWindowStyle

<style name="MyListPopupWindowStyle" parent="@android:style/Widget.Holo.Light.ListPopupWindow">
    <item name="android:popupBackground">@drawable/list_popup_background</item>
</style>

接下来,创建可绘制的list_popup_background ,你就完成了。

输出

在这里输入图像描述

顺便说一下,在上面的截图中,我使用了ColorDrawable作为背景。 这就是为什么,角落不圆,没有阴影。 为此,您需要创建一个与Android使用的类似的9修补程序drawable。 这是它的样子:

我的ColorDrawable被定义为:

<drawable name="list_popup_background">#33ffffff</drawable>

一些更多信息

Android本身使用一个状态选择器可绘制ListPopupWindow的背景。 选择器定义了两个状态: state_above_anchorstate_below_anchor (默认可达):

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_above_anchor="true" android:drawable="@android:drawable/menu_popup_panel_holo_light" />
    <item android:drawable="@android:drawable/menu_dropdown_panel_holo_light" />

对您定义类似的东西可能是个好主意。


您可以通过colorBackground属性对其进行着色

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="actionBarTheme">@style/AppTheme.ActionBar</item>
</style>

<style name="AppTheme.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:colorBackground">@color/red</item>
</style>
链接地址: http://www.djcxy.com/p/89629.html

上一篇: Setting a custom background color on Actionbar ShareActionProvider dropdownlist

下一篇: ShareActionProvider Drop down menu color from AppCompat v7