רכיב ה-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 throw e } }
דוגמה: שילוב עם חלונית הזזה לניווט
בדוגמה הזו אפשר לראות איך מטמיעים אנימציה מותאמת אישית באפליקציה באמצעות PredictiveBackHandler
כדי ליצור אינטראקציה חלקה עם מגירת ניווט בתגובה לתנועות החלקה אחורה ב-JetLagged:
בדוגמה הזו, נעשה שימוש ב-PredictiveBackHandler
כדי:
- מעקב אחרי ההתקדמות של התנועה לחזרה אחורה.
- מעדכנים את
translationX
של מגירת הניווט בהתאם להתקדמות המחוות. - משתמשים ב-
velocityTracker
כדי לפתוח או לסגור את מגירת האפליקציות בצורה חלקה על סמך מהירות התנועה כשמבצעים את התנועה או מבטלים אותה.