首页 > 解决方案 > 为什么 JetpackCompose Material Theme 的形状与边缘圆度有关?

问题描述

在 Jetpack Compose 中,我们可以轻松地为颜色、排版和形状定义材质主题。让我感到困惑的是形状。

默认形状是

val Shapes = Shapes(
    small = RoundedCornerShape(4.dp),
    medium = RoundedCornerShape(4.dp),
    large = RoundedCornerShape(0.dp)
)

为什么形状的大小与圆角半径有关?(例如越小,形状越圆?)。任何背后的理性

标签: androidmaterial-designandroid-jetpack-compose

解决方案


在 Material Design 中,所有组件都根据其大小分组为形状类别。
形状类别包括

  • 小组件
  • 中等组件
  • 大型组件

对于它们中的每一个,您可以定义定义角和边缘角度和曲线的形状类型。角由形状系列(RoundedCorner例如)和形状大小(4.dp例如)定义。有一些内置形状,如RoundedCornerShape, CutCornerShape, CircleShape.

每个组件都归入一个类别。检查此链接以获取更多信息

例如在Button定义中你可以找到默认值:

shape: Shape = MaterialTheme.shapes.small

推荐阅读