Я работаю над приложением, которое представляет пользователю два графических объекта. Каждый объект связан с соответствующим счетчиком, из которого пользователь может выбрать один из нескольких атрибутов. Прикосновение к одному счетчику деактивирует другой (это обрабатывается вне spinner.setEnabled.)
Представление содержит одну панель поиска, из которой пользователь может управлять диапазоном значений, применяемых к последнему выбранному атрибуту.
Цвет является одним из атрибутов. По мере перемещения панели поиска я могу изменить цвет фона всплывающих элементов. Мне нужно установить цвет текста всех элементов черным для светлых цветов фона и белым для всех темных цветов.
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) влияет только на отображаемый в данный момент элемент, а не на элементы, скрытые во всплывающем окне.
Я буду признателен за любые предложения.