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

Android Fragment中Button设置自定义背景后颜色未变化该如何解决?

问题原因

你当前项目默认使用了MaterialComponents主题,标准Button组件会被自动替换为MaterialButton,系统默认的背景色调会覆盖你设置的android:background属性,导致自定义drawable不生效。

解决方案

你可以选择以下任意一种方法解决:

  • 方法1:给当前Button添加app:backgroundTint="@null"属性,关闭默认的背景色调覆盖,修改后的Button代码如下:
<Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="login"
        android:background="@drawable/button_bg"
        app:backgroundTint="@null"
        android:textStyle="bold"
        android:textSize="16sp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintVertical_bias=".7"
        app:layout_constraintWidth_percent=".8"/>
  • 方法2:将布局中的Button替换为androidx.appcompat.widget.AppCompatButton,不会触发MaterialComponents的默认样式替换。
  • 方法3:如果你需要保留MaterialButton的特性,直接用MaterialComponent提供的属性配置样式,不需要额外写drawable文件:
<com.google.android.material.button.MaterialButton
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="login"
        app:backgroundTint="#F82F5A"
        app:cornerRadius="20dp"
        android:textStyle="bold"
        android:textSize="16sp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintVertical_bias=".7"
        app:layout_constraintWidth_percent=".8"/>
  • 方法4:全局修改主题,在res/values/themes目录下找到你的应用主题,将主题父类从Theme.MaterialComponents.xxx修改为带Bridge后缀的版本,比如:
<style name="Theme.你的应用名" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge">
    <!-- 其余主题配置保持不变 -->
</style>

修改后所有普通Button都会沿用传统的视图逻辑,不会被替换为MaterialButton。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:09:05