Va sistemul inițializa variabila innerPadding în funcție de Schelă automat?

0

Problema

Eu sunt de învățare Compune, Codul este de la art.

Mi s-a spus tthe următorul conținut:

Corpul de conținut, care este de tip @Composable (InnerPadding) -> Unitate: lambda primește o umplutură ca un parametru.

Sunt foarte ciudat în cazul în care variabila innerPadding este inițializat, va inițializa variabila de sistem innerPadding în funcție Scaffold automat?

Cod

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

Cel mai bun răspuns

2

Verificați codul sursă și veți vedea că Scaffold este implementat ca un subcompose layout. Bara de jos este subcomposed:

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

innerPadding apoi este derivat din înălțime din bara de jos:

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

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

În alte limbi

Această pagină este în alte limbi

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