这个问题更多的是关于为什么Jetpack Compose如此不直观。我正在尝试更好地理解这个库。
以下是可组合元素:
以下是可组合元素:
fun RoundedButton(modifier: Modifier, onClick: () -> Unit) {
Box(modifier = modifier.padding(horizontal = 10.dp)) {
Button(
onClick = { /* ... */ },
shape = CircleShape,
) {
// Inner content including an icon and a text label
Icon(
imageVector = Icons.Default.Add,
contentDescription = "Favorite",
modifier = Modifier.size(20.dp)
)
}
}
}
我理解了
因此,人们会认为,为了使其变成圆角,只需要设置大小(宽度和高度)为一个值,如果这样做
@Composable
fun RoundedButton(modifier: Modifier, onClick: () -> Unit) {
Box(modifier = modifier.padding(horizontal = 10.dp)) {
Button(
onClick = { /* ... */ },
shape = CircleShape,
modifier = modifier.size(40.dp)
) {
// Inner content including an icon and a text label
Icon(
imageVector = Icons.Default.Add,
contentDescription = "Favorite",
modifier = Modifier.size(20.dp)
)
}
}
}
我理解了。
问题:
我知道还有其他变体的Button
,比如IconButton
等等,但为什么要把简单的事情搞得这么复杂,以至于你不能从Button
到达RoundedButton
或IconButton
?
Button()
来自 Compose Material。Material Design 是一种有主见的设计系统,包括最小填充等内容。如果您不喜欢这些观点,请不要使用 Compose Material,而是基于非 Material 组合构建自己的设计系统。或者,在 Compose Material 中找到更适合您需求的其他组合构件,例如FloatingActionButton()
可能适用于您的用例。 - CommonsWare