הרכיב ה-composable PredictiveBackHandler
ב-Jetpack Compose מאפשר לכם ליירט את תנועת החזרה ולגשת להתקדמות שלה. אתם יכולים להגיב לתנועת החזרה של המשתמש בזמן אמת, וליצור אנימציות או התנהגויות בהתאמה אישית על סמך המרחק שבו המשתמש מחליק.
כדי להשתמש ב-PredictiveBackHandler
, צריך לוודא שאתם משתמשים ב-androidx.activity:activity:1.6.0
ואילך.
PredictiveBackHandler
מספק Flow<BackEventCompat>
שמפיק אירועים שמייצגים את ההתקדמות של תנועת החזרה. כל אירוע מכיל מידע כמו:
progress
: ערך ממשי (float) בין 0 ל-1 שמציין את ההתקדמות של מחווה החזרה אחורה (0 = המחווה התחילה, 1 = המחווה הושלמה).touchX
ו-touchY
: הקואורדינטות X ו-Y של אירוע המגע.
קטע הקוד הבא מציג שימוש בסיסי ב-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 } }
דוגמה: שילוב עם חלונית ההזזה לניווט
בדוגמה הזו מוסבר איך להטמיע אנימציה בהתאמה אישית באפליקציה באמצעות PredictiveBackHandler
כדי ליצור אינטראקציה חלקה עם חלונית הניווט בתגובה לתנועות חזרה ב-JetLagged:
בדוגמה הזו, PredictiveBackHandler
משמש כדי:
- מעקב אחר ההתקדמות של תנועת החזרה אחורה.
- מעדכנים את
translationX
של המגירה על סמך התקדמות התנועה. - משתמשים בתנועה
velocityTracker
כדי לפתוח או לסגור את המגירה בצורה חלקה, בהתאם למהירות התנועה כשהתנועה מסתיימת או מבוטלת.