我想更改 Android 微调器中显示的所选项目的颜色(针对 API 级别 16 及更高版本)。我已经尝试过在 SO 上发布的几种解决方案,包括为我的微调项创建自定义布局以及使用 ColorStateList 作为自定义布局的文本颜色属性,但无济于事。微调器显示在半透明背景上 - 因此项目的自定义布局不起作用,因为它向微调器添加了颜色。目前我的黑客解决方案是
if (_colorCodeSpinner.getSelectedView() != null) {
((TextView) _colorCodeSpinner.getSelectedView()).setTextColor(0xFFFFFFFF);
}
但这仅在所选 View 不为空(它处于方向更改)时才有效。
我无法相信没有设置文本颜色的简单解决方案。这似乎是你经常做的事情。与更改箭头的颜色相同,我目前通过
_colorCodeSpinner.getBackground().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);
我错过了什么吗?在微调器上更改颜色的推荐方法是什么?
如图所示,微调器中显示的所选项目的文本颜色为黑色,但我想将其更改为白色。
编辑
澄清一下:我不是在寻找在运行时覆盖值的一小段代码(比如我在这个问题中发布的两个 fragment )。我正在寻找一种正确执行此操作的实际方法(例如在 XML 布局中或通过主题)。设置一次文本颜色属性,这样我就不必每次都更新它,例如选择一个项目。
最佳答案
这样做:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
((TextView) parent.getChildAt(0)).setTextColor(Color.WHITE); /* if you want your item to be white */
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
关于android - 在 Android Spinner 中设置文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39247136/