Я до сих пор не уверен, что вызывает эту проблему, но я обошел ее, применив код ColorStateList
в таком виде:
button.setBackgroundTintList(
new ColorStateList(
new int[][]{
new int[]{-android.R.attr.state_enabled}, //Disabled
new int[]{} //Default
},
new int[]{
disabledColor,
defaultColor
}
)
);
Чтобы установить defaultColor
равным атрибуту цвета акцента, я использую следующий метод:
public static int getAccentColor(final Context context) {
final TypedValue typedValue = new TypedValue();
final TypedArray a = context.obtainStyledAttributes(typedValue.data, new int[]{android.R.attr.colorAccent});
final int color = a.getColor(0, 0);
a.recycle();
return color;
}