我正在开发一个应用程序,该应用程序向用户展示两个图形对象。每个对象都与相应的下拉列表关联,用户可以从中选择几个属性之一。触摸其中一个下拉列表将使另一个失效(这在spinner.setEnabled之外处理)。
视图包含一个单独的滑动条,用户可以使用它来控制最近选择的属性所应用的值的范围。
颜色是其中一个属性。随着滑动条的移动,我可以更改弹出项的背景颜色。我需要将所有项目的文本颜色设置为浅色背景颜色的黑色,并将所有深色颜色的文本颜色设置为白色。
我还没有找到一种方法来做到这一点。循环遍历spinner.getChildAt(i)只会影响当前显示的项目,而不是那些在弹出窗口中隐藏的项目。
我将感激任何建议。
视图包含一个单独的滑动条,用户可以使用它来控制最近选择的属性所应用的值的范围。
颜色是其中一个属性。随着滑动条的移动,我可以更改弹出项的背景颜色。我需要将所有项目的文本颜色设置为浅色背景颜色的黑色,并将所有深色颜色的文本颜色设置为白色。
if ( pos == object.COLOR_INDEX) {
//change spinner Background and Text color
spinner.setBackgroundColor(Colors.BACKGROUND[objectCurrent.getParams(pos)]);
TextView v ; int ct ;
for(int i=0; i<(ct=spinner.getChildCount()); ++i) {
v= (TextView)spinner.getChildAt(i);
v.setTextColor(Colors.FOREGROUND[objectCurrent.getParams(pos)]);
}
ColorDrawable drawable=(ColorDrawable) spinner.getBackground() ;
spinner.setPopupBackgroundDrawable(drawable);
spinner.setSelection(0); spinner.setSelection(pos);
}
我还没有找到一种方法来做到这一点。循环遍历spinner.getChildAt(i)只会影响当前显示的项目,而不是那些在弹出窗口中隐藏的项目。
我将感激任何建议。
android.R.layout.simple_spinner_item
传递给构造函数,然后设置下拉资源为simple_spinner_dropdown_item
? - IgorGanapolsky