如果按钮的背景设置为 a shape drawable
,我们可以通过调用
(GradientDrawable) findDrawableByd(R.drawable.some_shape).setColor(someColor);
.
如果它设置为 a layer-list drawable
,我们可以通过调用来实现改变它的颜色
LayerDrawable someLayerList = (LayerDrawable) getResources().getDrawable(R.drawable.someLayerList);
((GradientDrawable) someLayerList.findDrawableByLayerId(R.id.someShape)).setColor(someColor);
我想更深一层。如何以编程方式设置位于选择器中的图层列表中的可绘制形状的颜色?
使用上面的代码片段就可以了。它实际上看起来非常错误。我设置了多个对话框片段,可以按顺序更改按钮的颜色。虽然第一个 dialogFragment 总是正确着色,但其余部分通常不是。我想强调一点,当按钮的背景设置为图层列表时,一切正常,如果设置为选择器,它会有点问题。