我有一个可组合对象,它将 Modifier
实例传递给其子可组合对象,如下所示:
@Composable
fun MyComposable(
modifier: Modifier = Modifier,
content: @Composable BoxScope.() -> Unit,
) {
Box(
modifier = modifier.fillMaxWidth(),
content = content,
)
}
这将 fillMaxWidth
修饰符添加到 modifier
参数。但是,这不是所需的行为,因为我希望 fillMaxWidth
成为默认宽度,但仍允许调用者覆盖它。
如何组合/合并这两个修饰符,同时将我的本地修饰符设为默认值?
答案 0 :(得分:2)
使用 Modifier.composed
函数。
@Composable
fun MyComposable(
modifier: Modifier = Modifier,
content: @Composable BoxScope.() -> Unit,
) {
OtherComposable(
modifier = Modifier.fillMaxWidth().composed { modifier },
content = content,
)
}