Card(
modifier = modifier
.fillMaxWidth()
.height(126.dp)
.clickable(
onClick = onClick,
indication = ripple(bounded = true),
interactionSource = remember { MutableInteractionSource() }
),
shape = RoundedCornerShape(14.dp),
elevation = CardDefaults.cardElevation(defaultElevation = 0.dp),
colors = CardDefaults.cardColors(containerColor = colorWhite)
)
如图,看上面的Card组件的参数,有些参数放在外面:
在 Jetpack Compose 中,Modifier
用于描述组件在布局、绘制和交互等方面的修饰和行为,而组件的其他参数(比如形状、阴影、颜色)则定义了组件的内在外观和属性。这两部分分工明确,各自负责不同的内容。
1. Modifier 部分
- 用途:
- 控制组件的大小(如
.fillMaxWidth()
、.height(126.dp)
)。 - 添加交互行为(如
.clickable()
)。 - 设置布局修饰(如 padding、边距、背景等)。
- 控制组件的大小(如
- 原因:
- 这些是对组件外部布局、行为、装饰进行修改和增强的,它们属于“外部修饰”范畴,可以被多个组件共享和复用。
2. 组件参数部分(shape、elevation、colors 等)
- 用途:
- 定义组件的核心属性,比如圆角形状(
shape
)、卡片阴影(elevation
)、背景颜色(colors
)。
- 定义组件的核心属性,比如圆角形状(
- 原因:
- 这些参数是 Card 组件固有的属性,描述了组件自身的视觉风格和设计风格,而不是对其布局和交互的修饰。
- 将这些属性放在 Card 的参数中,使得它们成为组件的内在一部分,便于统一管理和主题配置。