החל מ-Android 10 (רמת API 29), מערכת Android תומכת בניווט שמבוסס כולו על תנועות. כדי לוודא שהאפליקציות שלהם תואמות לתכונה הזו, מפתחי אפליקציות צריכים לבצע שתי פעולות:
- הרחבת תוכן האפליקציה מקצה לקצה.
- טיפול בתנועות מתנגשות באפליקציות.
בנוסף, ב-Android 13 (רמת API 33) יש חיזוי תנועת החזרה למכשירי Android כמו טלפונים, מסכים גדולים ומכשירים מתקפלים, כחלק מגרסה רב-שנתית. מפתחי אפליקציות יכולים לבצע פעולות כדי לוודא שהאפליקציות שלהם תומכות בחיזוי תנועת החזרה.
הצגת תוכן האפליקציה מקצה לקצה
כדי לנצל את שטח המסך הנוסף שמתפנה בזכות סרגל הניווט הצף, צריך לבצע שינויים מסוימים באפליקציה.
פרטים נוספים זמינים במאמר הצגת תוכן מקצה לקצה באפליקציה.
טיפול בתנועות מתנגשות באפליקציות
מודל הניווט באמצעות תנועות עלול להתנגש עם תנועות שבהן השתמשו בעבר מפתחי אפליקציות. יכול להיות שתצטרכו לשנות את ממשק המשתמש של האפליקציה בהתאם.
התנגשות עם תנועות החזרה
התנועה החדשה במערכת לחזרה אחורה היא החלקה פנימה מהקצה השמאלי או הימני של המסך. זה עלול להפריע לרכיבי הניווט של האפליקציה באזורים האלה. כדי לשמור על הפונקציונליות של הרכיבים בקצוות השמאלי והימני של המסך, אתם יכולים לבטל את תנועת החזרה באופן סלקטיבי על ידי ציון האזורים שצריכים לקבל קלט מגע למערכת. כדי לעשות את זה, אתם יכולים להעביר List<Rect> ל-API View.setSystemGestureExclusionRects() שהושק ב-Android 10. השיטה הזו זמינה גם ב-ViewCompat החל מ-androidx.core:core:1.1.0-dev01.
לדוגמה:
Kotlin
var exclusionRects = listOf(rect1, rect2, rect3) fun onLayout( changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) } fun onDraw(canvas: Canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) }
Java
List<Rect> exclusionRects; public void onLayout( boolean changedCanvas, int left, int top, int right, int bottom) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); } public void onDraw(Canvas canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); }
התנגשויות עם תנועות למעבר למסך הבית או למעבר מהיר
כדי להשתמש בתנועות המובנות החדשות במערכת למסך הבית ולמעבר מהיר, צריך להחליק בתחתית המסך, באזור שבו היה סרגל הניווט. אפליקציות לא יכולות לבטל את ההסכמה לתנועות האלה, כמו שהן יכולות לעשות עם התנועה לחזרה אחורה.
כדי לצמצם את הבעיה, ב-Android 10 הוספנו את ה-API WindowInsets.getMandatorySystemGestureInsets(), שמעדכן את האפליקציות לגבי ערכי הסף לזיהוי מגע.
משחקים ואפליקציות אחרות שלא מבוססות על תצוגה
במשחקים ובאפליקציות אחרות שאין בהם היררכיית תצוגות, המשתמשים בדרך כלל צריכים להחליק ליד האזורים של התנועות המובנות במערכת. במקרים כאלה, אפשר להשתמש ב-Window.setSystemGestureExclusionRects() כדי להחריג אזורים שחופפים לאזורים ששמורים לתנועות מובנות במערכת. במשחקים, צריך להחריג את האזורים האלה רק כשזה הכרחי, למשל במהלך הגיימפליי.
אם המשחק דורש מהמשתמש להחליק ליד אזור התנועה של מסך הבית, האפליקציה יכולה לבקש פריסה במצב אימרסיבי. הפעולה הזו משביתה את התנועות המובנות במערכת בזמן שהמשתמש משחק, אבל מאפשרת לו להפעיל אותן מחדש בהחלקה מתחתית המסך.
עדכון האפליקציה כדי לתמוך בחיזוי תנועת החזרה
ב-Android 13 (רמת API 33) נוספה תנועת חזרה חזויה למכשירי Android כמו טלפונים, מסכים גדולים ומכשירים מתקפלים. חיזוי תנועת החזרה הוא חלק מגרסה רב-שנתית. כשהתכונה הזו מוטמעת באופן מלא, המשתמשים יכולים לראות תצוגה מקדימה של היעד או של תוצאה אחרת של תנועת החזרה לפני שהם משלימים אותה, וכך להחליט אם להמשיך או להישאר בתצוגה הנוכחית.
פרטים נוספים זמינים במאמר הוספת תמיכה בחיזוי תנועת החזרה.
מקורות מידע נוספים
מידע נוסף על ניווט באמצעות תנועות זמין במאמרים הבאים: