Lo scorrimento parallasse è una tecnica in cui i contenuti di sfondo e di primo piano scorrono a velocità diverse. Puoi implementare questa tecnica per migliorare l'interfaccia utente della tua app, creando un'esperienza più dinamica mentre gli utenti scorrono i contenuti.
Risultati
Compatibilità con le versioni
Questa implementazione richiede che il minSDK del progetto sia impostato sul livello API 21 o superiore.
Dipendenze
Creare un effetto parallasse
Per ottenere l'effetto parallasse, devi applicare una frazione del valore di scorrimento del composable di scorrimento al composable che richiede l'effetto parallasse. Il seguente snippet prende due elementi visivi nidificati, un'immagine e un blocco di testo, e li scorre nella stessa direzione a velocità diverse:
@Composable fun ParallaxEffect() { fun Modifier.parallaxLayoutModifier(scrollState: ScrollState, rate: Int) = layout { measurable, constraints -> val placeable = measurable.measure(constraints) val height = if (rate > 0) scrollState.value / rate else scrollState.value layout(placeable.width, placeable.height) { placeable.place(0, height) } } val scrollState = rememberScrollState() Column( modifier = Modifier .fillMaxWidth() .verticalScroll(scrollState), ) { Image( painterResource(id = R.drawable.cupcake), contentDescription = "Android logo", contentScale = ContentScale.Fit, // Reduce scrolling rate by half. modifier = Modifier.parallaxLayoutModifier(scrollState, 2) ) Text( text = stringResource(R.string.detail_placeholder), modifier = Modifier .background(Color.White) .padding(horizontal = 8.dp), ) } }
Punti chiave sul codice
- Crea un modificatore
layoutpersonalizzato per regolare la velocità di scorrimento del composable. - L'elemento
Imagescorre a una velocità inferiore rispetto all'elementoText, producendo un effetto parallasse quando i due composable si spostano verticalmente a velocità diverse.
Raccolte che contengono questa guida
Questa guida fa parte di queste raccolte di guide rapide curate che riguardano obiettivi di sviluppo Android più ampi:
Visualizzare un elenco o una griglia
Visualizzare immagini