更改AppCompatSpinner弹出框背景颜色

3
我试图将我的主题设置为白色文字的Spinner,但当Spinner弹出时,它有默认的白色背景,所以我的文本在那里不可见。我还尝试了使用android:popupBackgroundapp:popupBackground进行设置,但它在那里没有反映出来。 Spinner的截图:
Spinner 1 enter image description here Spinner 弹出 2 ![Spinner Popup 2 Spinner的XML代码:
<android.support.v7.widget.AppCompatSpinner
    android:id="@+id/spinLocation"
    style="@style/Base.Widget.AppCompat.Spinner.Underlined"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:popupBackground=""
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="20dp"
    app:backgroundTint="@color/white" />

Spinner项目的XML

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/txtValue"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:maxLines="1"
    android:paddingBottom="7dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="7dp"
    android:text=""
    android:textColor="@color/white"
    android:textSize="@dimen/_12sdp" />

我知道这是由于 textColor 项目,但如果我不定义它,那么它会显示在弹出窗口中,但在 Spinner 中不合适。因此,请为此提供最佳方法,并建议头部是否支持 appCompatSpinner。谢谢。

2个回答

2

你需要设置主题,或创建自定义主题。

这里是一个示例代码:

 <android.support.v7.widget.AppCompatSpinner
                style="@style/Base.Widget.AppCompat.Spinner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:entries="@array/array_radius"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:theme="@style/ThemeOverlay.AppCompat.Light" />

0
可能您可以为Spinner添加自己的Textview。
            <Spinner
                android:id="@+id/carMake"
                android:textColor="#606060"
                android:textSize="12sp"
                android:layout_gravity="end"
                android:layout_alignParentEnd="true"
                android:layout_below="@+id/vin_border"
                android:layout_marginTop="8dp"
                android:gravity="center_vertical"
                android:layout_width="wrap_content"
                android:layout_height="14dp">

            </Spinner>

Java 添加项目

 List<String> model = new ArrayList<>();
    model.add("Ford");
    model.add("BMW");
    model.add("Audi");
    model.add("Hyundai");
    model.add("Suzuki");
    model.add("Porsche");

ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(getContext(), R.layout.spinner_textview_layout, model);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    carMake.setAdapter(dataAdapter);

spinner的文本视图

<com.tagx.view.CustomTextView
app:font="@string/monte_light"
android:layout_width="wrap_content"
android:maxLines="1"
style="?android:attr/spinnerItemStyle"
android:ellipsize="marquee"
android:paddingStart="=20dp"
android:paddingEnd="40dp"
android:textColor="@color/fragment_owner_title_color"
android:layout_gravity="end"
android:textSize="12sp"
android:layout_height="wrap_content"
android:gravity="center"
/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接