You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击Android按钮时移除矩形阴影问题求助

解决AppCompatButton点击时出现矩形阴影的问题

看起来你遇到的是AppCompatButton默认的点击阴影动画问题——即使你设置了椭圆形的自定义背景,按钮自带的状态阴影动画(点击时elevation提升)依然会显示成矩形,和你的圆角按钮不匹配。下面是几种快速解决的方法:

方法1:直接移除状态动画

在你的AppCompatButton标签里添加android:stateListAnimator="@null",这会彻底禁用按钮所有的状态相关动画(包括点击时的阴影变化):

<android.support.v7.widget.AppCompatButton
    android:id="@+id/buttons"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:drawableLeft="@drawable/ic_compose"
    android:background="@drawable/roundedbutton"
    android:text="@string/ver"
    android:textSize="20sp"
    android:textColor="@color/blacktext"
    android:stateListAnimator="@null" /> <!-- 新增这一行 -->

方法2:强制设置阴影高度为0

如果你还想保留其他状态动画但只去掉阴影,可以设置elevation和translationZ为0:

<android.support.v7.widget.AppCompatButton
    android:id="@+id/buttons"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:drawableLeft="@drawable/ic_compose"
    android:background="@drawable/roundedbutton"
    android:text="@string/ver"
    android:textSize="20sp"
    android:textColor="@color/blacktext"
    android:elevation="0dp"
    android:translationZ="0dp" />

方法3:使用无阴影的按钮样式

给按钮指定一个无阴影的内置样式,比如Widget.AppCompat.Button.Borderless,这个样式本身就不会有阴影,同时也不会影响你自定义的背景:

<android.support.v7.widget.AppCompatButton
    android:id="@+id/buttons"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:drawableLeft="@drawable/ic_compose"
    android:background="@drawable/roundedbutton"
    android:text="@string/ver"
    android:textSize="20sp"
    android:textColor="@color/blacktext"
    style="@style/Widget.AppCompat.Button.Borderless" />

另外小提示:你的roundedbutton.xml里的渐变是从白色到白色,其实可以直接去掉<gradient>标签,用<solid android:color="@color/white" />来替代,这样代码会更简洁~

内容的提问来源于stack exchange,提问作者user9163296

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:17:39