为了账号安全,请及时绑定邮箱和手机立即绑定

Lollipop的backgroundTint对Button没有影响

Lollipop的backgroundTint对Button没有影响

隔江千里 2019-08-27 10:31:09
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)正确并自动着色。
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

似乎将波纹绘制着色是没有意义的(并且按钮的默认背景是可绘制的波纹)。

事实上,在查看平台的默认按钮drawable之后,我找到了“正确”的方法来做到这一点:你必须在你的主题中定义它:

    <item name="android:colorButtonNormal">@color/accent</item>

(当然这仅适用于21+级。)

警告:因为这是在主题中定义的,所以这将使用给定的颜色用于所有按钮(至少使用该主题的活动中的所有按钮。)

作为奖励,您还可以通过定义以下内容来更改波纹颜色:

    <item name="android:colorControlHighlight">@color/accent_ripple</item>


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 787 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信