That bastard drove me nuts today. I do not understand why is it so hard to fix. I want the text to be white. After 2 hours of reading useless posts, I found a solution working for me.
Copy the existing android.R.layout.simple_list_item_1
I made one which looks like this
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@android:color/white"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:minHeight="?android:attr/listPreferredItemHeightSmall" />
It has textColor set to white.
Set it to the Spinner adapter
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
R.layout.item_spinner, new ArrayList<String>() {{
add(getString(R.string.meetings_all));
add(getString(R.string.meetings_future));
add(getString(R.string.meetings_past));
}});
spMeetingStatus.setAdapter(adapter);
Set popUpTheme and theme to Spinner
Here is how my spinner looks like
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_meetings"
style="@style/TourMeetToolbar"
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize">
<Spinner
android:id="@+id/spinner_meeting_status"
android:spinnerMode="dropdown"
local:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
Basically, the “popUpTheme” sets how the elements inside are displayed. They are in a black background. You can change that by setting “popUpBackground” property to another color.