จะทำระบบจะเริ่มการตัวแปร innerPadding ในฟังก์ชัน Scaffold โดยอัตโนมัติ?

0

คำถาม

ฉันต้องเรียนรู้ Compose รหัสเป็นคืนจาก ข่าว.

ฉันบอก tthe ตามเนื้อหาภายใน:

ร่างเนื้อหาที่เป็นประเภท@Composable(InnerPadding)->หน่วยที่ lambda อย่างเราได้รับคำขู่แบบนี้เป็นนุ่นช่วยตอนเป็นพารามิเตอร์.

ฉันแปลกที่ตัวแปร 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 คือการจัดเตรียมไว้ตอนเป็น subcompose ผังแป้นพิมพ์. ทางด้านล่างบาร์เป็น subcomposed:

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

innerPadding คืองั้น derived จากความสูงของบาร์ด้านล่าง:

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ý
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่