相关疑难解决方法(0)

以编程方式将样式应用于MaterialButton

我正在尝试创建一个自定义视图,从该视图扩展MaterialButton并在代码中应用样式,因此我不需要在xml中进行操作。

class CustomRedButton @JvmOverloads constructor(
    context: Context, 
    attrs: AttributeSet? = null, 
    defStyleAttr: Int = 0
) : MaterialButton(ContextThemeWrapper(context, R.style.ButtonRedStyle), attrs, defStyleAttr) 
Run Code Online (Sandbox Code Playgroud)

风格是:

<style name="ButtonRedStyle" 
    parent="Widget.MaterialComponents.Button.TextButton">
    <item name="backgroundTint">@color/red</item>
    <item name="rippleColor">@color/grey</item>
    <item name="strokeWidth">1dp</item>
    <item name="strokeColor">@color/black</item>
</style>
Run Code Online (Sandbox Code Playgroud)

一切正常,但backgroundTint财产。由于某种原因,背景颜色没有改变,并且具有主题的原色。但是,如果我尝试将样式应用于MaterialButtonxml中,则会更改颜色。

知道为什么会发生或如何实现吗?

android material-design

5
推荐指数
2
解决办法
1408
查看次数

标签 统计

android ×1

material-design ×1