El desplazamiento de paralaje es una técnica en la que el contenido de fondo y el contenido de primer plano se desplazan a diferentes velocidades. Puedes implementar esta técnica para mejorar la IU de tu app y crear una experiencia más dinámica a medida que los usuarios se desplazan.
Resultados
Compatibilidad de versiones
Esta implementación requiere que el minSDK de tu proyecto se establezca en el nivel de API 21 o superior.
Dependencias
Crea un efecto de paralaje
Para lograr el efecto de paralaje, debes aplicar una fracción del valor de desplazamiento del elemento componible de desplazamiento al elemento componible que necesita el efecto de paralaje. El siguiente fragmento toma dos elementos visuales anidados (una imagen y un bloque de texto) y los desplaza en la misma dirección a diferentes velocidades:
@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), ) } }
Puntos clave sobre el código
- Crea un modificador
layoutpersonalizado para ajustar la velocidad con la que se desplaza el elemento componible. - El elemento
Imagese desplaza a una velocidad más lenta que el elementoText, lo que produce un efecto de paralaje a medida que los dos elementos componibles se desplazan verticalmente a diferentes velocidades.
Colecciones que contienen esta guía
Esta guía forma parte de las colecciones seleccionadas de Guías rápidas que abarcan objetivos más amplios de desarrollo para Android:
Cómo mostrar una lista o cuadrícula
Mostrar imágenes