Wieso ist bei Android Jetpack Compose beim Modifier (fillMaxSize() vs padding()) die Reihenfolge wichtig?
Hallo,
Wieso ist bei Android Jetpack Compose beim Modifier (fillMaxSize() vs padding()) die Reihenfolge wichtig?
Ich erhalte für die Modifier:
- Modifier.fillMaxSize().padding(16.dp)
- Modifier.padding(16.dp).fillMaxSize()
Nicht das selbe Ergebnis.
Zweiteres erzeugt ein Kleineres Composable -> aber da das eine Doch nach außen wirkt (fillMaxSize) und das andere nach Innen (padding), sollte es mmn nicht wichtig sein, in welcher Reihenfolge ich es definiere.
So wie bei HTML auch.
1 Antwort
Ich bin kein Jetpack-Programmierer und kann nur logische Schlussfolgerungen aus der der (schnell überflogenen) Dokumentation ziehen...:
siehe Padding:
Jetpack Compose doesn’t have a modifier for margin. We should use the padding modifier for both padding and margin. (Je nach Position/Anordnung in einer Folge von Formatierungen.)
@Composable
fun TextWidthPadding() {
Text(
"Padding and margin!",
Modifier.padding(32.dp) // Outer padding (margin)
.background(color = Color.Green) //background color
.padding(16.dp) // Inner padding
)
}
in deinem Fall würde dies bedeuten, dass ein Padding() vor Fillmaxsize() als Margin fungiern. Padding() nach Fillmaxsize() als Padding
- https://developer.android.com/develop/ui/compose/modifiers?hl=de#order-modifier-matters
- https://developer.android.com/develop/ui/compose/layouts/constraints-modifiers?hl=de
***Erklärung unter dem Vorbehalt ,dass es nicht mein Fachgebiet ist! 😇