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

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

משחקים ואפליקציות אחרות ללא צפייה

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

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

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

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

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

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

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

פוסטים בבלוגים

סרטונים