如何更改 Spinner 箭头的颜色或可绘制对象

How to change color or drawable of Spinner arrow

只想更改 Spinner 箭头的颜色(@color 或 @drawable)

这是唯一执行某些操作的代码,它使可绘制对象成为微调器的整个背景。 (我尝试了很多其他的想法但没有成功)

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="android:spinnerStyle">@style/SpinnerColor</item>
</style>

<style name="SpinnerColor" parent="Base.Widget.AppCompat.Spinner">
    <item name="android:background">@drawable/ic_add_white_24dp</item>
</style>

这是我给 Spinner

充气的方式
mNavigationSpinner = new Spinner(getSupportActionBar().getThemedContext());
mNavigationSpinner.setAdapter(spinnerAdapter);

mNavigationSpinner.setOnItemSelectedListener(this);
toolbar.addView(mNavigationSpinner);

尝试更改

<item name="android:spinnerStyle">@style/SpinnerColor</item>

<item name="android:actionDropDownStyle">@style/SpinnerColor</item>

其中

<item name="android:background">@drawable/ic_add_white_24dp</item>

在 SpinnerColor 样式中是 StateListDrawable。 StateListDrawable 的项目是 9-patch drawables。

这是我的解决方法。

这是 Toolbar 中的样式调用,我忘记了。

在toolbar.xml

这个

app:theme="@style/ThemeOverlay.AppCompat.Light"

改成这样

app:theme="@style/ThemeOverlay.AppCompat"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"

看起来与 this

相同

好的。您可以使用以下代码更改下拉箭头颜色

在您的 styles.xml 文件中只需添加此属性即可。

 <item name="android:colorControlNormal">@color/colorAccent</item>

例如。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
       <item name="android:colorControlNormal">@color/colorAccent</item>
    </style>