Променете програмно цвета на формата в списъка със слоеве в селектора

ако фонът на бутон е зададен на 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);

Искам да отида едно ниво по-дълбоко. Как мога програмно да задам цвета на чертаема форма, която се намира в списък със слоеве, който се намира в селектор?

Използването на кодовия фрагмент по-горе донякъде работи. Всъщност изглежда много бъги. Имам множество настроени диалогови фрагменти, които променят цвета на бутона последователно. Докато първият диалогов фрагмент винаги е оцветен правилно, останалите обикновено не са. Искам да подчертая, че когато фонът на бутона е настроен на списъка със слоеве, всичко работи перфектно, ако е настроен на селектора, става малко бъгово.


person rperryng    schedule 28.02.2014    source източник
comment
Посетете stackoverflow.com/questions/ 8976836/   -  person Mukul Lakhwani    schedule 08.01.2015