El sistema de inicializar la variable innerPadding en función de Andamio de forma automática?

0

Pregunta

Estoy aprendiendo a Componer, Un Código es del artículo.

Me dijeron que el siguiente contenido:

El contenido del cuerpo que es de tipo @Componibles (InnerPadding) -> Unidad: la lambda recibe un relleno como un parámetro.

Estoy muy extraña donde la variable innerPadding se inicializa, el sistema de inicializar la variable innerPadding en función de Scaffold automáticamente?

El Código De Una

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

Mejor respuesta

2

Inspeccionar el código fuente y verás que Scaffold se implementa como un subcompose diseño. La barra inferior es subcomposed:

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

innerPadding se deriva entonces de la altura de la parte inferior de la barra:

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

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

En otros idiomas

Esta página está en otros idiomas

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