Dan*_*iel 5 android spinner android-layout android-spinner
我想更改Android中微调器中显示的所选项目的颜色(目标API等级为16级).我已尝试在SO上发布了几个解决方案,包括为我的微调器项创建自定义布局,并使用ColorStateList作为自定义布局的文本颜色属性,但无济于事.微调器显示在半透明背景上 - 因此项目的自定义布局不起作用,因为它为微调器添加了颜色.目前我的黑客解决方案是
if (_colorCodeSpinner.getSelectedView() != null) {
((TextView) _colorCodeSpinner.getSelectedView()).setTextColor(0xFFFFFFFF);
}
Run Code Online (Sandbox Code Playgroud)
但这仅在所选视图不为空(它在方向更改时)时有效.
我无法相信没有简单的解决方案来设置文本颜色.这似乎是你经常做的事情.同样改变箭头的颜色,我目前正在做的
_colorCodeSpinner.getBackground().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?在旋转器上更改颜色的推荐方法是什么?
如图所示,微调器中显示的所选项目的文本颜色为黑色,但我想将其更改为白色.
编辑
澄清一下:我不是在寻找一些在运行时覆盖值的小代码(比如我在这个问题中发布的两个片段).我正在寻找一种实际的方法来正确地做到这一点(比如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) {
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14778 次 |
| 最近记录: |