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

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

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

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

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

פוסטים בבלוג

סרטונים