Будет ли система инициализировать переменную, входящую в структуру функций, автоматически?

0

Вопрос

Я учусь Сочинять, Код А взят из статьи.

Мне сообщили следующее содержание:

Содержимое тела, которое относится к типу @Composable (внутреннее заполнение) -> Единица измерения: лямбда-код получает заполнение в качестве параметра.>

Мне очень странно, где переменная innerPadding будет инициализирована, будет ли система инициализировать переменную innerPadding в функции Scaffold автоматически?

Код А

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

Лучший ответ

2

Проверьте исходный код, и вы увидите, что Scaffold реализован в виде субкомпозитного макета. Нижняя панель субкомпозирована:

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

innerPadding затем выводится из высоты нижней планки:

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

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

На других языках

Эта страница на других языках

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