Scrivere una Composable Layout
Misuri gli elementi figli e li posizioni manualmente.
Scrivere una Composable Layout è una lezione Jetpack Compose Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Jetpack Compose Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Jetpack Compose Academy include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Meet the Layout Composable
To build your own arrangement, you reach for the Layout composable. It hands you the raw measure-and-place power directly. 🛠️
Layout Takes Content and a Lambda
Layout accepts your child content plus a measure lambda. The lambda receives the measurables and the constraints to work with.
Layout(content = content,
modifier = modifier) { measurables, constraints ->
// measure and place
}Step One: Measure the Children
Inside the lambda, map over the measurables and measure each one. You get a list of placeables with known sizes back.
val placeables = measurables.map { it.measure(constraints) }Step Two: Decide Your Own Size
Now compute how big your layout should be. For a vertical stack, the height is the sum of child heights and the width is the widest child.
val height = placeables.sumOf { it.height }
val width = placeables.maxOf { it.width }Step Three: Report Size with layout()
Call layout(width, height) to declare your size. The trailing lambda is where you actually position every child.
layout(width, height) {
// placement goes here
}Step Four: Place Each Child
Track a running y offset and place each placeable beneath the last. Add its height to the offset after each placeRelative call.
var y = 0
placeables.forEach {
it.placeRelative(0, y)
y += it.height
}You Just Rebuilt Column
Stacking children top to bottom is exactly what Column does. You have now written a layout from scratch that behaves just like it. 🎉
Wrap It in a Reusable Function
Put your Layout call inside a @Composable function so others can use it like any built-in. Expose a modifier and content slot.
@Composable
fun MyColumn(modifier: Modifier = Modifier,
content: @Composable () -> Unit) { }Pass the Modifier Through
Forward the incoming modifier to the Layout call. This lets callers add padding, size, and background just like with real layouts.
Default the Modifier Parameter
Give modifier a default of Modifier. Callers who do not need extra styling can skip it, keeping your API clean and friendly.
Now You Can Customize Anything
Change the placement math and you get diagonal stacks, centered rows, or grids. The Layout composable is your blank canvas for arrangement.
Quick Check
Which method actually positions a measured child on screen?
Recap: Writing a Layout Composable
Inside Layout you measure children to placeables, call layout() to set your size, then placeRelative each child. Wrap it in a function for reuse. ✅
Domande Frequenti
La lezione «Scrivere una Composable Layout» è gratuita?
Sì — il testo completo di «Scrivere una Composable Layout» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Jetpack Compose Academy, passa a CoddyKit PRO. Il corso Jetpack Compose Academy include 4 lezioni in totale.
Cosa imparerò in «Scrivere una Composable Layout»?
Misuri gli elementi figli e li posizioni manualmente. Eserciti Jetpack Compose Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Jetpack Compose Academy?
Non è richiesta alcuna esperienza precedente. Jetpack Compose Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Scrivere una Composable Layout»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Jetpack Compose Academy?
Sì. Ogni lezione Jetpack Compose Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Il modello Measure e Place
- Scrivere una Composable Layout
- Vincoli e misurazioni intrinseche
- Una FlowRow che va a capo