2014-06-17 39 views
1

我有一个Android应用程序,当用户点击一个视图元素时,我创建一个ListPopupWindow。 ListPopupWindow小部件是使用全黑的默认主题创建的。样式ListPopupWindow部件

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文件的解决方案(即,我应该如何编辑我的主题和样式文件)。

回答

4

您应该为您的应用的主题定义listPopupWindowStyle

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

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

我已经试过你建议什么。 MyListPopupWindow包含'#fff',并且样式AppTheme用于我的AndroidManifest.xml的android:主题中。不幸的是,这个定义对绘制的弹出窗口没有影响。 – Laurent

+0

我成功地使它工作。首先,我通过使用带有四个参数的构造函数将MyListPopWindow样式应用于我的ListPopWindow,最后一个是MyListPopupWindow的资源ID。其次,我使用'#xxxxxx'来改变背景颜色。 – Laurent

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)); 

希望这将是为别人有用。

0

为背景,您可以使用colorBackground:

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