Мне любопытно, можно ли передать составные части в пользовательский блок составных частей. Который затем отображается в его определении. Я думал, что можно использовать буквальный подход vararg + function, и не смог найти никакой информации.
//definition
@Composable
fun Content() {
Row(modifier = Modifier.fillMaxWidth()) {
//insert a(), b(), ..., z() so that they render in the row
}
}
//usage
Content() {
a()
b()
...
z()
}
Что-то подобное уже существует? Таким образом вы можете использовать Jetpack Compose. Реализация строки должна каким-то образом обрабатывать текст.
Row(){
Text("a")
Text("b")
Text("c")
}
Посмотрев на реализацию Row, RowScope и найдя этот кусок документации . Этого можно добиться с помощью следующего примера кода. Параметр функции content с типом @Composable() () -> Unit
передается в строку.
//definition
@Composable
fun MyCustomContent(
modifier: Modifier = Modifier,
content: @Composable() () -> Unit
) {
Row(modifier = modifier) {
content()
}
}
//usage
MyCustomContent() {
a()
b()
z()
}
«назовите это как вам угодно» — вы можете начать получать предупреждения Lint. Официальное соглашение состоит в том, что этот параметр называется
content
.