Parallax scrolling adalah teknik yang membuat konten latar belakang dan konten latar depan di-scroll dengan kecepatan yang berbeda. Anda dapat menerapkan teknik ini untuk meningkatkan UI aplikasi, sehingga menciptakan pengalaman yang lebih dinamis saat pengguna men-scroll.
Hasil
Kompatibilitas versi
Implementasi ini mengharuskan minSDK project Anda ditetapkan ke API level 21 atau yang lebih tinggi.
Dependensi
Membuat efek paralaks
Untuk mencapai efek paralaks, Anda menerapkan sebagian kecil nilai scroll dari composable scroll ke composable yang memerlukan efek paralaks. Cuplikan berikut mengambil dua elemen visual bertingkat—gambar dan blok teks—dan men-scroll-nya ke arah yang sama dengan kecepatan yang berbeda:
@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), ) } }
Poin utama tentang kode
- Membuat pengubah
layoutkustom untuk menyesuaikan kecepatan scroll composable. Imagedi-scroll dengan kecepatan yang lebih lambat daripadaText, sehingga menghasilkan efek paralaks saat kedua composable diterjemahkan secara vertikal dengan kecepatan yang berbeda.
Koleksi yang berisi panduan ini
Panduan ini adalah bagian dari koleksi Panduan Singkat pilihan yang mencakup sasaran pengembangan Android yang lebih luas:
Menampilkan daftar atau petak
Menampilkan gambar