Czy system zainicjować zmienną, wchodząca w strukturę funkcji, automatycznie?

0

Pytanie

Uczę się Komponować, Kod A pochodzi z artykułu.

Poinformowano mnie następującej treści:

Zawartość ciała, które ten utrzymany jest raczej w @Composable (wewnętrzne wypełnienie) -> Jednostka: lambda kod dostaje wypełnianie jako parametr.>

Bardzo mi się to dziwne, gdzie zmienna innerPadding będzie zainicjować, czy system zainicjować zmienną innerPadding w funkcji Scaffold automatycznie?

Kod A

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

Najlepsza odpowiedź

2

Sprawdź kod źródłowy, a zobaczysz, że Scaffold realizowany w postaci субкомпозитного układu. Dolny panel субкомпозирована:

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

innerPadding następnie jest wydalany z wysokości dolnej listwy:

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

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

W innych językach

Ta strona jest w innych językach

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