设计 Spinner、appcompat、material

Styling a Spinner, appcompat, material

所以我的应用主题扩展自 AppCompat 的 Material Light 主题和 Dark Action Bar。

我应用了强调色。

现在我正尝试在深色背景上使用微调器,由于主题的原因,微调器有一个深灰色箭头,按下时会变为强调色。

我怎样才能使这个微调器的箭头变成白色,以便它在深色背景上突出显示?

这是微调器的图像:

通过android:background您可以指定自己的后台资源。我发现箭头相当无用(即使没有箭头,点击微调器也会出现下拉菜单)所以如果你不想绘制自定义箭头图像,只需将背景保持黑色或透明即可。

如果您想在整个应用程序中应用相同的微调器样式,那么在您的 values/styles.xml 中,使用您的自定义样式覆盖 spinnerStyle,该样式派生自 appcompat 类型并覆盖 android:background

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

<style name="AppSpinner" parent="Widget.AppCompat.Spinner">
    <item name="android:background">@drawable/your_spinner_background</item>
</style>

如果您需要一种快速生成微调器背景的方法,请尝试 android-holo-colors,选择彩色微调器并提供强调色。

因此支持库 22.1 允许在视图上使用 android:theme 属性。这应该对这里有所帮助。