I'm trying to set the background color of a spinner popup but everything I've tried didn't work properly.
This is the spinner control:
<Spinner
android:id="@+id/myspinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@null"
android:drawSelectorOnTop="true" />
When I click on it, it shows a popup with a white background, and I want to change that.
The xml line which I use to populate the popup is:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/list_selector"
android:paddingBottom="@dimen/padding_medium"
android:layout_marginBottom="@dimen/padding_medium"
android:orientation="vertical">
..........
</RelativeLayout>
and the drawable background list_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Pressed -->
<item
android:state_pressed="true"
android:drawable="@color/green" /> <!-- @drawable/tab_press -->
<!-- Selected -->
<item
android:state_selected="true"
android:drawable="@color/green" /> <!-- @drawable/tab_press -->
</selector>
Adding a default state to the above xml is ok, but the spinner main control shows the item with that background color, and I don't want that.
Another thing I've tried is to set the application background color to black in styles.xml
<style name="AppTheme" parent="android:Theme.Light">
<item name="android:background">#000000</item>
<item name="android:textColor">#FFFFFF</item>
<item name="android:typeface">sans</item>
</style>
That overrides the popup background too, but it has undesirable collateral effects. Is there any way to accomplish this in a simple way?
PS: I'm using API level 10 (2.3.3) and the attribute android:popupBackground
doesn't exist.