Junior — Middle
Πώς μπορεί να καθοριστεί μια ατομική διάταξη διεπαφής χρήστη στο Jetpack Compose;
sobes.tech AI
Απάντηση από AI
Στο Jetpack Compose, για τον ορισμό μιας προσαρμοσμένης διάταξης διεπαφής χρήστη, χρησιμοποιείται η λειτουργία Layout, η οποία επιτρέπει τον ανεξάρτητο έλεγχο της τοποθέτησης και του μεγέθους των παιδικών στοιχείων.
Παράδειγμα δημιουργίας προσαρμοσμένου συνθέτη:
@Composable
fun CustomLayout(
modifier: Modifier = Modifier,
content: @Composable () -> Unit
) {
Layout(
content = content,
modifier = modifier
) { measurables, constraints ->
// Μετράμε τα παιδικά στοιχεία
val placeables = measurables.map { it.measure(constraints) }
// Ορίζουμε το μέγεθος του κοντέινερ
val width = placeables.maxOfOrNull { it.width } ?: constraints.minWidth
val height = placeables.sumOf { it.height }
layout(width, height) {
var yPosition = 0
placeables.forEach { placeable ->
placeable.placeRelative(x = 0, y = yPosition)
yPosition += placeable.height
}
}
}
}
Σε αυτό το παράδειγμα, τα παιδικά στοιχεία τοποθετούνται κάθετα το ένα κάτω από το άλλο. Αυτή η προσέγγιση παρέχει πλήρη έλεγχο πάνω στη διάταξη των στοιχείων στο UI.