我使用的是持久支持设计:28,alpha3。

我使用“ Theme.MaterialComponents.Light.NoActionBar”作为应用程序的主题,并使用“ MaterialButton”代替布局中的常规“ Button”。

我可以正常设置XML的BackgroundTind,但不能通过Java进行更改。

我试过了:

deliverSwitch.setBackgroundTintList(getResources().getColorStateList(R.color.colorYellow));

deliverSwitch.setSupportBackgroundTintList(getResources().getColorStateList(R.color.colorYellow));


但是它们都不起作用...我还尝试通过将setBackgroundTintList保留为null来清除当前色,并且它也不起作用。

最佳答案

我也无法正常工作。作为一种解决方法,我执行了以下操作:首先,获得当前的背景Drawable,然后使用所需的颜色对其进行着色,并为材质按钮使用setBackgroundDrawable设置新的背景。

Drawable background = materialButton.getBackground();
background.setTint(ContextCompat.getColor(getContext(), R.color.bg_button_primary));
materialButton.setBackgroundDrawable(background);


希望对您有所帮助。

10-08 00:00