Scaffold
In Material Design ist ein Scaffolding eine grundlegende Struktur, die eine standardisierte Plattform für komplexe Benutzeroberflächen bietet. Sie hält verschiedene Teile der Benutzeroberfläche zusammen, z. B. App-Leisten und Floating Action Buttons, und verleiht Apps ein einheitliches Erscheinungsbild.
Verwendungsbeispiele
Das Scaffold
-Modul bietet eine einfache API, mit der Sie die Struktur Ihrer App schnell gemäß den Material Design-Richtlinien zusammenstellen können.
Scaffold
akzeptiert mehrere zusammensetzbare Funktionen als Parameter. Dazu gehören:
topBar
: Die App-Leiste oben auf dem Bildschirm.bottomBar
: Die App-Leiste am unteren Bildschirmrand.floatingActionButton
: Eine Schaltfläche, die unten rechts auf dem Bildschirm angezeigt wird und mit der Sie wichtige Aktionen aufrufen können.
Ausführlichere Beispiele zur Implementierung von App-Leisten oben und unten finden Sie auf der Seite „App-Leisten“.
Sie können Scaffold
-Inhalte auch wie bei anderen Containern übergeben. Es übergibt einen innerPadding
-Wert an das content
-Lambda, den Sie dann in untergeordneten Composeables verwenden können.
Das folgende Beispiel zeigt, wie Sie Scaffold
implementieren können. Sie enthält eine obere App-Leiste, eine untere App-Leiste und eine schwebende Aktionsschaltfläche, die mit dem internen Status von Scaffold
interagiert.
@Composable fun ScaffoldExample() { var presses by remember { mutableIntStateOf(0) } Scaffold( topBar = { TopAppBar( colors = topAppBarColors( containerColor = MaterialTheme.colorScheme.primaryContainer, titleContentColor = MaterialTheme.colorScheme.primary, ), title = { Text("Top app bar") } ) }, bottomBar = { BottomAppBar( containerColor = MaterialTheme.colorScheme.primaryContainer, contentColor = MaterialTheme.colorScheme.primary, ) { Text( modifier = Modifier .fillMaxWidth(), textAlign = TextAlign.Center, text = "Bottom app bar", ) } }, floatingActionButton = { FloatingActionButton(onClick = { presses++ }) { Icon(Icons.Default.Add, contentDescription = "Add") } } ) { innerPadding -> Column( modifier = Modifier .padding(innerPadding), verticalArrangement = Arrangement.spacedBy(16.dp), ) { Text( modifier = Modifier.padding(8.dp), text = """ This is an example of a scaffold. It uses the Scaffold composable's parameters to create a screen with a simple top app bar, bottom app bar, and floating action button. It also contains some basic inner content, such as this text. You have pressed the floating action button $presses times. """.trimIndent(), ) } } }
Diese Implementierung sieht so aus: