作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到以下代码A的警告信息,为什么?
可选的 Modifier 参数应具有默认值 Modifier
代码A
@Composable
fun DisplayIcon(
modifier: Modifier=Modifier.size(24.dp),
icon: ImageVector,
tint: Color = Color.Blue
) {
Icon(icon, null, modifier = modifier, tint = tint)
}
最佳答案
这只是一个最佳实践。使用其他一些默认值可能会导致奇怪的情况 - 假设您想在一个列中使用两个这样的组件:
Column {
DisplayIcon()
DisplayIcon()
}
一切都很好,但现在你想对齐其中一个:
Column {
DisplayIcon()
DisplayIcon(modifier = Modifier.align(Alignment.End))
}
突然之间,没有明显的原因,一个的大小与另一个不同。因此,您必须从 DisplayIcon
实现中找出发生了什么,然后可能也将 .size(24.dp)
添加到对齐的可组合项中。但是现在你想改变默认大小,你必须在很多不同的地方这样做......
这样的事情可能是更好的解决方案:
@Composable
fun DisplayIcon(
modifier: Modifier = Modifier,
icon: ImageVector,
tint: Color = Color.Blue,
size: Dp = 24.dp,
) {
Icon(icon, null, modifier = modifier.size(size), tint = tint)
}
关于android - 为什么我在 Jetpack Compose 中收到 "Optional Modifier parameter should have a default value of Modifier"警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73415055/
我是一名优秀的程序员,十分优秀!