样式化ListPopupWindow小部件

时间:2014-06-17 14:48:23

标签: android android-widget android-styles

我有一个Android应用程序,当用户单击视图元素时,我创建一个ListPopupWindow。 ListPopupWindow小部件使用默认主题holo black创建。

 final ListAdapter adapter = new ArrayAdapter<ChoiceListItem>(context,
                android.R.layout.select_dialog_item, choices);
 final ListPopupWindow listPopupWindow = new ListPopupWindow(context);
 // ...   
 listPopupWindow.setAdapter(adapter);

如何更改ListPopupWindow颜色以用作例如全息灯或甚至是文本,项目背景和项目之间的分隔符的自定义颜色?

最好是,我正在寻找使用XML文件的解决方案(即我应该如何编辑主题和样式文件)。

3 个答案:

答案 0 :(得分:3)

您应为App的主题定义listPopupWindowStyle

<style name="AppTheme" parent="...">
    <item name="android:listPopupWindowStyle">@style/MyListPopupWindow</item>
</style>

<style name="MyListPopupWindow">
    <!-- attributes you want go here -->
</style>

答案 1 :(得分:1)

另一个,我认为,非常简单的方法是用颜色创建drawable并将其设置为背景。

bg_popup_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/bg_work_item_menu"/>
</selector>

listPopupWindow.setBackgroundDrawable(
     context.getResources().getDrawable(R.drawable.bg_popup_menu));

希望它对某些人有帮助。

答案 2 :(得分:0)

对于背景,您可以使用colorBackground:

<item name="android:colorBackground">@color/your_color</item>