更新到 Material 1.2.0 后,MaterialButton 上缺少角半径属性

Posted

技术标签:

【中文标题】更新到 Material 1.2.0 后,MaterialButton 上缺少角半径属性【英文标题】:Corner radius property missing on MaterialButton after update to Material 1.2.0 【发布时间】:2020-12-03 00:48:54 【问题描述】:

这是我的 MaterialButton 代码:

<com.google.android.material.button.MaterialButton
    android:id="@+id/next_button"
    android:layout_
    android:layout_
    android:layout_alignParentStart="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="68dp"
    android:layout_marginTop="510dp"
    android:layout_marginEnd="68dp"
    android:layout_marginBottom="68dp"
    android:background="@color/colorPrimary"
    android:minHeight="60dp"
    android:text="@string/onboarding_next_button"
    android:textColor="@android:color/white"
    app:cornerRadius="25dp" />

在将材质库从 1.1.0 更新到 1.2.0 后,app:CornerRadius 将被忽略。我尝试按照 Material 文档使用形状主题,但控件仍然完全是方形的

【问题讨论】:

我发现它在 1.2.0 中运行良好。尝试使缓存无效并重新启动 android studio。 【参考方案1】:

使用app:backgroundTint 代替android:background

<com.google.android.material.button.MaterialButton
   app:backgroundTint="@color/colorPrimary"
   .../>

1.2.0 开头,可以在MaterialButton 中使用android:background使用自定义 android:background 默认 MaterialShapeDrawable 不使用 并且未设置一些特征,如笔触、形状外观、角半径、波纹(因为它们与 MaterialShapeDrawable 相关)并且你有为他们提供您的自定义背景

由于您使用简单的颜色作为背景,请使用app:backgroundTint

【讨论】:

以上是关于更新到 Material 1.2.0 后,MaterialButton 上缺少角半径属性的主要内容,如果未能解决你的问题,请参考以下文章

Android 主题:在 Material3 中将状态栏颜色设置为操作栏颜色

华为mate7出现google文字转语音引擎运行已停止,经常弹出窗口,求解,重新下载也不行

ubuntu mate开启ssh

华为mate305g版怎么辨别真假

如何更改 Material Design ActionBar 的文本?

华为mate30pro设置了lr键,为啥点击没反应?