【发布时间】:2016-06-16 13:59:00
【问题描述】:
我有一个按钮,它有两种状态,每个状态必须有不同的背景。
为了利用 android 默认实现的 Button(例如 +Lollipop 中的波纹效果),我没有定义自定义背景并使用 colorButtonNormal 属性如下:
<style name="PrimaryButton.Success">
<item name="colorButtonNormal">@color/colorSuccess</item>
</style>
<style name="PrimaryButton.Fail">
<item name="colorButtonNormal">@color/colorFail</item>
</style>
我知道在使用 XML 时如何为按钮设置主题(设置我的 AppCompatButton 的属性 app:theme),但正如我上面提到的,我需要在运行时以编程方式更改它。我该怎么做?
【问题讨论】:
-
@MojtabaAsg 您确定要更改主题吗?为什么不将按钮的颜色设置为Color State List?
-
@cricket_007 不,我的问题是关于添加到 appcompatbutton 的新属性而不是旧样式!
-
@Bryan 告诉我你的方法,我可以用你的解决方案定义自定义状态和更改状态吗?
标签: android android-support-library android-appcompat