问题描述
我正在尝试制作一个从AppCompat扩展的简单主题,并且想要更改微调框弹出窗口的背景颜色。我完全可以纯粹通过使用颜色来完全重新设置AppCompat的样式,但是卡在了Spinner上。
检查Widget.AppCompat.Spinner
的xml,我发现它的android:popupBackground
是API 20及以下版本的9补丁位图,但可绘制21及以上版本的向量。我知道如何创建有色的9补丁。
对于21岁以上的人群,微调器背景在popup_background_material.xml
中定义为:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="2dp" />
<solid
android:color="?attr/colorPopupBackground" />
</shape>
我尝试以values-v21
样式设置此颜色属性,如下所示:
<style name="MyTheme" parent="MyBaseTheme">
<item name="android:colorPopupBackground">@color/colorSpinnerBackground</item>
</style>
但是在构建时出现错误:
AAPT: error: style attribute 'android:attr/colorPopupBackground' is private.
是否有一些更简单的方法为我缺少的Spinners重新着色?我知道我可以复制粘贴矢量xml文件并在其中更改颜色,但是我只希望坚持使用颜色,因此,如果对AppCompat的主题进行了更改,我可以通过更新其版本来自动获取它们。
当前使用的是AppCompat 1.0.2。
解决方法
关于自定义微调器,我有一个很好的例子。
此示例显示了如何更改微调器背景颜色。
但这是韩语,不是英语
请参阅链接。