Thành phần kết hợp PredictiveBackHandler
trong Jetpack Compose cho phép bạn chặn cử chỉ quay lại và truy cập vào tiến trình của cử chỉ đó. Bạn có thể phản ứng với cử chỉ quay lại của người dùng theo thời gian thực, tạo ảnh động hoặc hành vi tuỳ chỉnh dựa trên khoảng cách người dùng vuốt.
Để sử dụng PredictiveBackHandler
, hãy đảm bảo bạn đang sử dụng androidx.activity:activity:1.6.0
trở lên.
PredictiveBackHandler
cung cấp Flow<BackEventCompat>
phát ra các sự kiện đại diện cho tiến trình của cử chỉ quay lại. Mỗi sự kiện chứa thông tin như:
progress
: Giá trị số thực dấu phẩy động từ 0 đến 1 cho biết tiến trình của cử chỉ quay lại (0 = cử chỉ bắt đầu, 1 = cử chỉ hoàn tất).touchX
vàtouchY
: Toạ độ X và Y của sự kiện chạm.
Đoạn mã sau đây cho thấy cách sử dụng cơ bản của PredictiveBackHandler
:
PredictiveBackHandler(true) { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress boxScale = 1F - (1F * backEvent.progress) } // code for completion boxScale = 0F } catch (e: CancellationException) { // code for cancellation boxScale = 1F } }
Ví dụ: Tích hợp với ngăn điều hướng
Ví dụ này minh hoạ cách triển khai ảnh động tuỳ chỉnh trong ứng dụng bằng PredictiveBackHandler
để tạo tương tác mượt mà với ngăn điều hướng nhằm phản hồi các cử chỉ quay lại trong JetLagged:
Trong ví dụ này, PredictiveBackHandler
được dùng để:
- Theo dõi tiến trình của cử chỉ quay lại.
- Cập nhật
translationX
của ngăn dựa trên tiến trình cử chỉ. - Sử dụng
velocityTracker
để mở hoặc đóng ngăn một cách mượt mà dựa trên tốc độ cử chỉ khi cử chỉ hoàn tất hoặc bị huỷ.