更改AppCompatSpinner弹出背景颜色

时间:2017-10-25 10:18:38

标签: android spinner

我尝试使用白色文字作为我的主题制作Spinner,但是当Spinner弹出窗口显示时,它具有默认的白色背景,因此我的文字在那里不可见。我还尝试使用android:popupBackgroundapp:popupBackground进行设置,但它并没有反映出来。

Spinner的屏幕截图:

Spinner 1

enter image description here

Spinner Popup 2

![Spinner Popup 2

用于微调器的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 个答案:

答案 0 :(得分:0)

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

以下是示例代码:

 <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" />

答案 1 :(得分:0)

可能您可以为微调器添加自己的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项目的textview

<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"
/>