web-dev-qa-db-fra.com

Comment passer des enfants à Jetpack composer à une compostable personnalisée?

Je suis curieux s'il est possible de passer en composacables à un bloc de composacas personnalisé. Qui est ensuite rendu dans sa définition. Je pensais qu'une approche littérale de la fonction Vararg + pourrait être prise et ne pouvait trouver aucune information.

//definition
@Composable
fun Content() {
    Row(modifier = Modifier.fillMaxWidth()) {
        //insert a(), b(), ..., z() so that they render in the row
    }
}

//usage
Content() {
    a()
    b()
    ...
    z()
}

Est-ce que quelque chose comme ça existe déjà? Vous êtes capable d'utiliser Jetpack composer de cette façon. La mise en œuvre de la ligne doit gérer le texte en quelque sorte.

Row(){
    Text("a")
    Text("b")
    Text("c")
}
9
MaxGDN

Après avoir examiné la mise en œuvre de la rangée, des rowscope et de la recherche de ce morceau de documentation . Cela peut être atteint par l'échantillon de code suivant. Le conten Paramètre de fonction avec le type de @Composable() () -> Unit est transmis dans la ligne.

//definition
@Composable
fun MyCustomContent(
    modifier: Modifier = Modifier,
    content: @Composable() () -> Unit
) {
    Row(modifier = modifier) {
        content()
    }
}

//usage
MyCustomContent() {
    a()
    b()
    z()
}
2
MaxGDN