0Pricing
Jetpack Compose Academy · Lezione

Connessioni di scorrimento annidate

Coordini lo scorrimento tra contenitori.

Connessioni di scorrimento annidate è una lezione Jetpack Compose Academy gratuita su CoddyKit. Questa è la lezione 4 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.

Scrolls Inside Scrolls

Sometimes a scrollable sits inside another scrollable, like a list under a collapsing header. Nested scroll lets them cooperate instead of fighting. 📜

The Coordination Problem

Without help, the inner list eats every swipe and the outer container never moves. NestedScrollConnection shares the scroll between them.

Meet nestedScroll

Attach the nestedScroll modifier and pass a connection. That connection intercepts scroll deltas as they travel up the tree.

Modifier.nestedScroll(connection)

Pre-Scroll: First Dibs

The parent gets a chance before the child via onPreScroll. Return how much of the delta you consumed; the rest flows to the child.

override fun onPreScroll(available: Offset, source): Offset

Post-Scroll: Leftovers

After the child scrolls, onPostScroll offers any unused delta back to the parent. Use it to move a header once the list hits its edge.

override fun onPostScroll(consumed, available, source): Offset

Consume What You Need

In each callback you return an Offset of how much you used. Return Offset.Zero to pass everything through to the next participant.

return Offset(0f, consumedY)

Fling Phases Too

There are matching onPreFling and onPostFling callbacks for momentum. They are suspend functions so you can animate as the fling resolves.

override suspend fun onPreFling(available: Velocity): Velocity

Remember the Connection

Wrap your connection in remember so it survives recomposition. Capture any state it reads, like a header offset, inside it.

val connection = remember { object : NestedScrollConnection {...} }

Collapsing Toolbar Classic

The flagship use is a collapsing toolbar: shrink the top bar with pre-scroll while the list scrolls, then expand it on the way back.

It Just Works Often

Many built-ins like Scaffold with scroll behaviors already wire nested scroll for you. Reach for a custom connection only when you need fine control.

Mind the Source

Each callback gets a source telling you if the scroll came from a drag or a fling. Use it to react differently to touch versus momentum.

if (source == NestedScrollSource.Drag) { /* ... */ }

Quick Check

Which callback lets a parent consume scroll before its child does?

Recap: Scrolls in Harmony

You learned NestedScrollConnection with pre and post scroll and fling, the key to collapsing toolbars and cooperating lists. 🎉

Domande Frequenti

La lezione «Connessioni di scorrimento annidate» è gratuita?

Sì — il testo completo di «Connessioni di scorrimento annidate» è 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 «Connessioni di scorrimento annidate»?

Coordini lo scorrimento tra contenitori. 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 4 di 4.

Quanto tempo richiede la lezione «Connessioni di scorrimento annidate»?

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

  1. pointerInput e detectTapGestures
  2. Trascinamento, swipe e fling
  3. Transform: pan, zoom e rotazione
  4. Connessioni di scorrimento annidate
← Torna a Jetpack Compose Academy