Мой может быть особым случаем или из-за порядка, в котором я устанавливаю свой адаптер, или из-за того, что я использую два пользовательских прядильщика классов:
- Первый класс расширяет класс
LinearLayout
, а
- Второй расширяет класс
Spinner
.
Ключи, по которым я нашел отключенный счетчик, были следующими:
- Обнулить старый объект в функции
setEnabled
и
- Настройка цвета в функции
onDraw
.
Внутри обоих этих пользовательских классов спиннеров у меня есть специальная setEnabled
функция, подобная этой, аннулирующая старое представление:
public void setEnabled(Boolean enabled) {
super.setEnabled(enabled);
invalidate();
}
Я также переопределяю функцию onDraw
в каждом своем специальном блесне класс:
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (this.getChildAt(0) != null) {
this.getChildAt(0).setAlpha(this.isEnabled() ? 1.0f : 0.7f);
}
}