我发现的解决方案可以更改所有的微调器下拉图标:
1.创建自定义可绘制对象
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/vector_drawable_ic_dropdown_black" android:state_focused="true" android:state_pressed="false" />
<item android:drawable="@drawable/vector_drawable_ic_dropdown_black" android:state_focused="true" android:state_pressed="true" />
<item android:drawable="@drawable/vector_drawable_ic_dropdown_black" android:state_focused="false" android:state_pressed="true" />
<item android:drawable="@drawable/vector_drawable_ic_dropdown_black" />
</selector>
<强>2。将可绘制对象设置为微调器背景:
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:background="@drawable/custom_spinner_icon"
android:gravity="center"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:textColor="@color/textcolorprimary" />
结果是:
正如您所见,这不是一个可接受的解决方案,因为图标需要右对齐而不是拉伸(stretch)。
如何使图标不拉伸(stretch)并正确对齐?
编辑
由于还没有可行的解决方案,我想我必须指定我的问题。 这是我的 Spinner 使用标准主题的外观:
<Spinner
android:id="@+id/products_download_spinner_language"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:gravity="center"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:textColor="@color/textcolorprimary"
android:theme="@android:style/Theme.Holo.Light.DarkActionBar" />
而我想要的一切(我猜这真的不多)正在改变箭头。我不希望显示右下角的那个箭头,我希望这个箭头垂直居中显示在右边:
到目前为止我尝试过的每一个解决方案:
How to set dropdown arrow in spinner?
只是没有工作。他们有拉伸(stretch)图标或底线丢失或其他完全错误的东西。我只是想要另一个箭头。
最佳答案
尝试将以下样式应用于您的微调器
style="@style/SpinnerTheme"
//微调器样式:
<style name="SpinnerTheme" parent="android:Widget.Spinner">
<item name="android:background">@drawable/bg_spinner</item>
</style>
//bg_spinner.xml 用你的箭头替换 arrow_down_gray
<?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 - 更改微调器下拉图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37411637/