תאימות לניווט באמצעות תנועות

החל מגרסה 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(), שמעדכן את האפליקציות לגבי ערכי הסף לזיהוי המגע.

משחקים ואפליקציות אחרות שאינן View

במשחקים ובאפליקציות אחרות שאין בהן היררכיית תצוגה, המשתמשים צריכים לרוב להחליק ליד אזורי התנועות של המערכת. במקרים כאלה, מפתחי משחקים יכולים להשתמש ב-Window.setSystemGestureExclusionRects() כדי להחריג אזורים שמצטופפים עם אזורים שמורים לתנועות מערכת. חשוב לוודא שהאזורים האלה יוחרגו מהמשחקים רק במקרה הצורך, למשל במהלך המשחק.

אם במשחק נדרש מהמשתמש להחליק ליד אזור המחווה של דף הבית, האפליקציה יכולה לבקש להציג את התוכן במצב צפייה immersive. הפעולה הזו משביתה את תנועות המערכת בזמן שהמשתמש מבצע אינטראקציה עם המשחק, אבל מאפשרת למשתמש להפעיל מחדש את התנועות במערכת על ידי החלקה מתחתית המסך.

עדכון האפליקציה כך שתתמוך בתנועת החזרה חזוי

ב-Android 13 (API ברמה 33) נוספה תנועת חזרה חזותית למכשירי Android, כמו טלפונים, מסכים גדולים ומכשירים מתקפלים. תנועת החזרה החזויה היא חלק מהשקה רב-שנתית. כשהתכונה הזו תוטמע במלואה, המשתמשים יוכלו לראות תצוגה מקדימה של היעד או של תוצאה אחרת של תנועת החזרה לפני שהם משלימים אותה, וכך להחליט אם להמשיך או להישאר בתצוגה הנוכחית.

פרטים נוספים זמינים במאמר הוספת תמיכה בתנועת החזרה חזוי.

מקורות מידע נוספים

למידע נוסף על ניווט באמצעות תנועות, עיינו במקורות הבאים:

פוסטים בבלוג

סרטונים