Cuộn thị sai là một kỹ thuật trong đó nội dung nền và nội dung nền trước cuộn ở các tốc độ khác nhau. Bạn có thể triển khai kỹ thuật này để cải thiện giao diện người dùng của ứng dụng, tạo ra trải nghiệm linh hoạt hơn khi người dùng cuộn.
Kết quả
Khả năng tương thích giữa các phiên bản
Việc triển khai này yêu cầu bạn đặt minSDK của dự án thành cấp độ API 21 trở lên.
Phần phụ thuộc
Tạo hiệu ứng thị sai
Để đạt được hiệu ứng thị sai, bạn áp dụng một phần giá trị cuộn từ thành phần kết hợp có thể cuộn vào thành phần kết hợp cần hiệu ứng thị sai. Đoạn mã sau đây lấy 2 phần tử trực quan lồng nhau (một hình ảnh và một khối văn bản) rồi cuộn chúng theo cùng một hướng ở các tốc độ khác nhau:
@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), ) } }
Các điểm chính về mã
- Tạo một đối tượng sửa đổi
layouttuỳ chỉnh để điều chỉnh tốc độ cuộn của thành phần kết hợp. Imagecuộn chậm hơnText, tạo ra hiệu ứng thị sai khi hai thành phần kết hợp này dịch theo chiều dọc với tốc độ khác nhau.
Bộ sưu tập chứa hướng dẫn này
Hướng dẫn này là một phần của bộ sưu tập Hướng dẫn nhanh được tuyển chọn, bao gồm các mục tiêu phát triển Android rộng hơn:
Hiển thị danh sách hoặc lưới
Hiển thị hình ảnh