Я пытаюсь изменить текущий выбранный цвет текста NumberPicker при каждом изменении его значения.
На данный момент у меня есть следующий код:
val values2 = arrayOf(
"00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50"
)
numberPicker2.maxValue = 10
numberPicker2.minValue = 0
numberPicker2.displayedValues = values2
numberPicker2.descendantFocusability = NumberPicker.FOCUS_BLOCK_DESCENDANTS
val myValChangedListener2 =
NumberPicker.OnValueChangeListener { picker, oldVal, newVal ->
val count = picker.childCount
for (i in 0 until count) {
val child = picker.getChildAt(i)
if (child is EditText) {
if (child.text.toString() == values2[newVal]) {
child.textColor = getColor(R.color.iberdrola_orange)
child.typeface = Typeface.create("sans-serif-thin", Typeface.BOLD)
} else {
child.typeface = Typeface.create("sans-serif-thin", Typeface.NORMAL)
child.textColor = getColor(R.color.black)
}
}
}
picker.invalidate()
}
numberPicker2.setOnScrollListener { view, scrollState ->
if (view is EditText) {
val count = numberPicker2.childCount
for (i in 0 until count) {
val child = numberPicker2.getChildAt(i) as EditText
if (child == view) {
view.textColor = getColor(R.color.iberdrola_orange)
} else {
child.textColor = getColor(R.color.black)
}
}
}
}
numberPicker2.setOnValueChangedListener(myValChangedListener2)
Цвет выбранного значения NumberPickerне меняется, по крайней мере, когда прокручивается и автоматически привязывается к центру.Просто, когда я касаюсь выбранного значения, оно становится оранжевым и жирным.