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

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

  • הרחבת תוכן האפליקציה מקצה לקצה.
  • טיפול בתנועות מתנגשות באפליקציות.

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

הצגת תוכן של האפליקציה מקצה לקצה

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

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

טיפול בתנועות מתנגשות באפליקציות

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

התנגשות עם תנועות גב

תנועת המערכת החדשה לחזרה אחורה היא החלקה פנימה משמאל או הקצה הימני של המסך. הדבר עשוי להפריע לרכיבי הניווט באפליקציה את האזורים האלה. כדי לשמור על הפונקציונליות של הרכיבים בקצה השמאלי ובקצה הימני של המסך, לבטל באופן סלקטיבי את תנועת החזרה על ידי סימון אילו אזורים צריכים לקבל קלט מגע. אפשר לעשות זאת על ידי העברת List<Rect> ל-View.setSystemGestureExclusionRects() API חדש ב-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 כמו טלפונים, מסכים גדולים ומתקפלים. החזרה החזויה היא חלק מהשקה רב-שנתית. כשהתכונה הזו מוטמעת באופן מלא, מאפשרת למשתמשים לראות תצוגה מקדימה של היעד או תוצאה אחרת של תנועת החזרה לפני הם משלימים אותה במלואה, וכך יכולים להחליט אם להמשיך או להישאר בתצוגה הנוכחית.

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

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

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

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

סרטונים