0
我想更改微调器下拉列表中第一项的颜色。 的解决方案之一是重写getDropDownView方法:在ArrayAdapter中重写getDropDownView以更改下拉列表中特定行的颜色也会更改另一行的颜色
ArrayAdapter<CharSequence> sprache_ratoromanisch_adapter =
new ArrayAdapter<CharSequence>(
getContext(),
android.R.layout.simple_spinner_item,
list_sprache_ratoromanisch) {
@Override
public View getDropDownView (int position, View convertView, ViewGroup parent){
View row = super.getDropDownView(position, convertView, parent);
if(position == 0) {
row.setBackgroundColor(Color.LTGRAY);
}
return(row);
}
};
但是我有一个问题 - 第一,第二是之前不可见元素 - 如果元素的数量足够大,他们都超过了微调的可见部分当它们变得可见时,滚动也会改变颜色。 items in spinner's dropdown change color
原因是convertView是一个“回收视图”。当第一个项目离开屏幕时,它的视图被发送回屏幕上的项目以保存更多的渲染计算。因此重复背景颜色。 –