Será que o sistema de inicializar a variável innerPadding em função do Andaime automaticamente?

0

Pergunta

Eu estou aprendendo a Compor, o Código é do artigo.

Foi-me dito o seguinte conteúdo:

O conteúdo do corpo que é do tipo @Compostas (InnerPadding) -> Unidade: lambda recebe um preenchimento como um parâmetro.

Eu sou muito estranha, onde a variável innerPadding é inicializado, o sistema de inicializar a variável innerPadding em função de Scaffold automaticamente?

Código

 Scaffold { innerPadding ->
        Text(text = "Hi there!", modifier = Modifier.padding(innerPadding))
 }
android-jetpack-compose kotlin
2021-11-24 01:53:09
1

Melhor resposta

2

Inspecione o código fonte e você vai ver que Scaffold é implementado como um subcompose layout. A barra inferior é subcomposed:

val bottomBarPlaceables = subcompose(ScaffoldLayoutContent.BottomBar) {
    CompositionLocalProvider(
        LocalFabPlacement provides fabPlacement,
        content = bottomBar
    )
}.fastMap { it.measure(looseConstraints) }

innerPadding em seguida, é derivado a partir da altura da barra inferior:

val bottomBarHeight = bottomBarPlaceables.fastMaxBy { it.height }?.height ?: 0

val innerPadding = PaddingValues(bottom = bottomBarHeight.toDp())
content(innerPadding)
2021-11-24 03:09:15

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................