Il sistema inizializzare la variabile innerPadding in funzione di Impalcatura automaticamente?

0

Domanda

Sto imparando a Comporre Un Codice è l' articolo.

Mi è stato detto che il seguente contenuto:

Il contenuto del corpo che è di tipo @Componibile (InnerPadding) -> Unità: lambda riceve una imbottitura come parametro.

Io sono molto strana, in cui la variabile innerPadding è inizializzato, il sistema inizializzare la variabile innerPadding in funzione Scaffold automaticamente?

Codice

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

Migliore risposta

2

Ispezionare il codice sorgente e vedrete che Scaffold è implementato come un subcompose layout. La barra in basso è subcomposed:

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

innerPadding è quindi derivato dall'altezza della barra in basso:

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

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

In altre lingue

Questa pagina è in altre lingue

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