если фон кнопки установлен на shape drawable
, мы можем программно вызвать (GradientDrawable) findDrawableByd(R.drawable.some_shape).setColor(someColor);
.
Если он установлен на layer-list drawable
, мы можем изменить его цвет, вызвав
LayerDrawable someLayerList = (LayerDrawable) getResources().getDrawable(R.drawable.someLayerList);
((GradientDrawable) someLayerList.findDrawableByLayerId(R.id.someShape)).setColor(someColor);
Я хочу пойти на один уровень глубже. Как я могу программно установить цвет рисуемой фигуры, которая находится в списке слоев, который находится в селекторе?
Использование приведенного выше фрагмента кода вроде работает. На самом деле он выглядит очень глючным. У меня есть несколько диалоговых фрагментов, которые последовательно меняют цвет кнопки. В то время как первый dialogFragment всегда окрашен правильно, остальные обычно нет. Я хочу подчеркнуть, что когда фон кнопки установлен на список слоев, все работает идеально, если установлен на селектор, он немного глючит.