显示Android微调器的箭头

时间:2018-09-29 18:12:44

标签: android android-widget android-spinner android-background

我有一个微调器,其背景在可绘制文件中定义:

<style name="spinner_style" parent="android:Widget.Material.Light.Spinner">
    <item name="android:background">@drawable/background_spinner</item>
</style>

样式:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/red" />
    <corners android:radius="3dp" />
</shape>

问题是未显示箭头。原因是:<item name="android:background">@drawable/background_spinner</item>

如何添加它,例如在可绘制文件中?

1 个答案:

答案 0 :(得分:1)

解决方案:

您应该定义一个<layer-list>来这样做:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>

            <item>
                <shape>
                    <gradient android:angle="90" android:endColor="#ffffff" android:startColor="#ffffff" android:type="linear" />
                    <stroke android:width="0.33dp" android:color="#0fb1fa" />
                    <corners android:radius="0dp" />
                    <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
                </shape>
            </item>

            <item android:right="5dp">
                <bitmap android:gravity="center_vertical|right" android:src="@drawable/arrow_down_gray" />
            </item>

        </layer-list>

    </item>
</selector>

然后,用您的可绘制箭头替换行android:src="@drawable/arrow_down_gray"

最后,将其作为style="@style/spinner_style"应用于微调器。

说明:<layer-list>的信息可在此处找到:https://developer.android.com/guide/topics/resources/drawable-resource#LayerList<bitmap>用于在屏幕上绘制图像。我们选择可绘制图像并设置重力。

有关更多信息,可能其他高级专家可以为您提供。

希望有帮助。