Dun*_*Luk 21 android kotlin android-jetpack android-jetpack-compose
我有一个可组合项,它将Modifier实例传递给其子可组合项,如下所示:
@Composable
fun MyComposable(
modifier: Modifier = Modifier,
content: @Composable BoxScope.() -> Unit,
) {
Box(
modifier = modifier.fillMaxWidth(),
content = content,
)
}
Run Code Online (Sandbox Code Playgroud)
这会将fillMaxWidth修饰符添加到参数中modifier。但是,这不是所需的行为,因为我希望fillMaxWidth成为默认宽度,但仍然允许调用者覆盖它。
如何组合/合并两个修改器,同时将本地修改器设置为默认修改器?
Dun*_*Luk 12
使用该Modifier.composed功能。
@Composable
fun MyComposable(
modifier: Modifier = Modifier,
content: @Composable BoxScope.() -> Unit,
) {
OtherComposable(
modifier = Modifier.fillMaxWidth().composed { modifier },
content = content,
)
}
Run Code Online (Sandbox Code Playgroud)
使用该Modifier.then功能。
@Composable
fun MyComposable(
modifier: Modifier = Modifier,
content: @Composable BoxScope.() -> Unit,
) {
OtherComposable(
modifier = Modifier.fillMaxWidth().then(modifier),
content = content,
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12004 次 |
| 最近记录: |