当前位置: 首页 > 知识库问答 >
问题:

带背景色按钮上的材质效果

凌和悦
2023-03-14

我正在使用Android v21支持库。

我已经创建了一个自定义背景颜色的按钮。当我使用背景色时,像涟漪,揭示的材质设计效果已经消失了(除了点击时的提升)。

 <Button
 style="?android:attr/buttonStyleSmall"
 android:background="?attr/colorPrimary"
 android:textColor="@color/white"
 android:textAllCaps="true"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Button1"
 />

<Button
 style="?android:attr/buttonStyleSmall"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:textAllCaps="true"
 android:text="Button1"
/>

共有1个答案

益兴生
2023-03-14

更新:从AppCompat 23.0.0版开始,有一个新的widget.AppCompat.Button.Colored样式,它将主题的ColorButtonNormal用于禁用的颜色,将ColorAccent用于启用的颜色。

这允许您直接通过以下方式将其应用到您的按钮

<Button
  ...
  style="@style/Widget.AppCompat.Button.Colored" />

如果您需要自定义ColorButtonNormalColorAccent,您可以使用ThemeOverlay(如本专业提示所述)和按钮上的Android:Theme

您可以使用v21目录中的drawable作为后台,例如:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?attr/colorControlHighlight">
    <item android:drawable="?attr/colorPrimary"/>
</ripple>

这将确保您的背景颜色为?attr/ColorPrimary并且使用默认的?attr/ColorControlHighlight(如果愿意,也可以在主题中设置)具有默认的纹波动画。

注意:您必须为小于V21的用户创建一个自定义选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/primaryPressed" android:state_pressed="true"/>
    <item android:drawable="@color/primaryFocused" android:state_focused="true"/>
    <item android:drawable="@color/primary"/>
</selector>
 类似资料:
  • 我正在尝试将按钮的背景色从蓝色淡入白色,并将字体颜色从白色淡入蓝色。我查了其他帖子。 这是我的小提琴:http://jsfiddle.net/t533wbuy/1/ 我用这把小提琴作为参考:http://jsfiddle.net/visualdecree/SvjHx/ 我的问题是: 我希望它是一个按钮,而不是一个按钮 Css html 点击这里申请 jQuery

  • 材料规格显示禁用按钮状态,看起来是灰色的。 https://www.material.io/design/components/buttons.html#切换按钮 只是默认情况下没有在材料Android组件中实现?材料组件是否定义了禁用的按钮状态器?

  • 我对改变晶圆厂的背景色有一个问题,似乎晶圆厂后面有另一个背景 这是我的代码 现在唯一有效的解决方案是改变我的应用程序上的颜色口音,但它会影响其他UI元素

  • 问题内容: 我很难从Material UI TextField组件中删除自动填充上的黄色背景。 在旧版本中,我是这样进行的: 但是在最新版本中,该道具已删除并添加。 我试图用这种方法将其删除,但是黄色背景颜色仍然出现: 问题答案: 对于更换是: vs. 是常见的混淆点。大写字母“ I” 为其中的Input元素提供了道具(将native包裹在中)。小写的“ i” 为在组件内呈现的本机元素提供了支持。

  • 本文向大家介绍使用CSS更改按钮的背景色,包括了使用CSS更改按钮的背景色的使用技巧和注意事项,需要的朋友参考一下 要更改按钮的背景色,请使用background-color属性。 您可以尝试运行以下代码来更改按钮的背景色 示例