【发布时间】:2017-09-22 22:16:40
【问题描述】:
我想在 Android 中更改我的微调器中显示的选定项目的颜色(针对 API 级别 16 及更高级别)。我已经尝试过在 SO 上发布的几种解决方案,包括为我的微调器项目创建自定义布局并使用 ColorStateList 作为自定义布局的文本颜色属性,但无济于事。微调器显示在半透明背景上 - 因此项目的自定义布局不起作用,因为它为微调器添加了颜色。目前我的黑客解决方案是
if (_colorCodeSpinner.getSelectedView() != null) {
((TextView) _colorCodeSpinner.getSelectedView()).setTextColor(0xFFFFFFFF);
}
但这仅在所选视图不为空(即方向更改时)时才有效。
我不敢相信没有设置文本颜色的简单解决方案。这似乎是你经常做的事情。与更改箭头颜色相同,我目前通过
_colorCodeSpinner.getBackground().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);
我错过了什么吗?更改微调器颜色的推荐方法是什么?
如图所示,在微调器中显示的选定项的文本颜色为黑色,但我想将其更改为白色。
编辑
澄清一下:我不是在寻找在运行时覆盖值的一小段代码(比如我在这个问题中发布的两个 sn-ps)。我正在寻找一种正确执行此操作的实际方法(例如在 XML 布局中或通过主题)。设置一次文本颜色属性,这样我就不必每次都更新它,例如选择一个项目。
【问题讨论】:
标签: android android-layout spinner android-spinner