带下划线和自定义右箭头的微调器

时间:2019-04-13 06:44:49

标签: android android-layout background android-spinner android-drawable

我想显示带有下划线和自定义右箭头的微调器,如下所示。 enter image description here

我将以下drawable设置为微调器的背景。

<item>

    <layer-list>

        <item>
            <color android:color="@android:color/white" />
        </item>

        <item android:drawable="@drawable/ic_spinner_dropdown" android:drawableTint="@color/dark_grey" android:gravity="center_vertical|right"></item>
        <item android:gravity="bottom">
            <shape>
                <size android:height="1dp" />
                <solid android:color="@color/grey" />
            </shape>
        </item>
    </layer-list>

</item>

它适用于某些设备,但在某些设备中,箭头会在带有灰色背景的完整微调器上显示,例如: enter image description here

我正在使用具有API 21的华硕电话进行测试,而我正面临此问题。

我在布局中使用以下代码-

                <Spinner
                    android:id="@+id/spinner_choose_question"
                    style="@style/Widget.App.Spinner"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/dp_16"
                    android:layout_marginTop="@dimen/dp_58"
                    android:layout_marginRight="@dimen/dp_16"
                    app:layout_constraintLeft_toLeftOf="parent"
                    app:layout_constraintRight_toRightOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/tip_confirm_password"/>

styles.xml

<style name="Widget.App.Spinner" parent="@style/Base.Widget.AppCompat.Spinner.Underlined">
    <item name="overlapAnchor">true</item>
    <item name="android:background">@drawable/spinner_background</item>
</style>

1 个答案:

答案 0 :(得分:1)

-尝试将样式添加到微调器,如下所示。

<Spinner
    android:layout_width="150dp"
    android:layout_height="40dp"
    android:popupBackground="#ffffff"
    android:dropDownVerticalOffset="30dp"
    style="@style/Base.Widget.AppCompat.Spinner.Underlined"/>