Lollipop的backgroundTint对Button没有影响

Lollipop的backgroundTint对Button没有影响

我的活动中有一个Button,我希望它有我主题的强调色。而不是像我们必须做的那样制作我自己的可绘制的Lollipop,我自然会想要使用新backgroundTint属性。

<Button
    android:id="@+id/btnAddCode"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:backgroundTint="@color/accent"
    android:text="@string/addressInfo_edit_addCode" />

不幸的是它没有效果,按钮保持灰色。

我尝试了不同的值backgroundTintMode,但没有改变任何东西。

我也尝试在我的Activity中以编程方式进行,它没有改变任何东西。

addCodeView.findViewById(R.id.btnAddCode).setBackgroundTintList(
     getResources().getColorStateList(R.color.accent));

为什么我的色彩被忽略了?

编辑:只是为了澄清,我确实在Lollipop设备上进行测试。其他小部件(例如EditText)正确并自动着色。


隔江千里
浏览 788回答 3
3回答

守候你守候我

似乎将波纹绘制着色是没有意义的(并且按钮的默认背景是可绘制的波纹)。事实上,在查看平台的默认按钮drawable之后,我找到了“正确”的方法来做到这一点:你必须在你的主题中定义它:&nbsp;&nbsp;&nbsp;&nbsp;<item&nbsp;name="android:colorButtonNormal">@color/accent</item>(当然这仅适用于21+级。)警告:因为这是在主题中定义的,所以这将使用给定的颜色用于所有按钮(至少使用该主题的活动中的所有按钮。)作为奖励,您还可以通过定义以下内容来更改波纹颜色:&nbsp;&nbsp;&nbsp;&nbsp;<item&nbsp;name="android:colorControlHighlight">@color/accent_ripple</item>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android