החל מ-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 הושק ה-API WindowInsets.getMandatorySystemGestureInsets(), שמודיע לאפליקציות על ספי הזיהוי של מגע.
משחקים ואפליקציות אחרות שאינן אפליקציות View
במשחקים ובאפליקציות אחרות שאין להם היררכיית תצוגות, המשתמשים נדרשים להחליק ליד אזורי תנועות מובנות במערכת. במקרים כאלה, המשחקים יכולים להשתמש ב-Window.setSystemGestureExclusionRects() כדי להחריג אזורים שחופפים לאזורים ששמורים לתנועות מערכת. במשחקים, צריך להקפיד להחריג את האזורים האלה רק כשצריך, למשל במהלך המשחק.
אם במשחק נדרשת החלקה של המשתמש ליד אזור מחוות הבית, האפליקציה יכולה לשלוח בקשה להצגה במצב מסך מלא. ההגדרה הזו משביתה את מחוות המערכת בזמן שהמשתמש מקיים אינטראקציה עם המשחק, אבל מאפשרת למשתמש להפעיל מחדש את מחוות המערכת על ידי החלקה מלמטה למעלה במסך.
עדכון האפליקציה כדי לתמוך בחיזוי תנועת החזרה
Android 13 (רמת API 33) כולל תנועת חזרה ניבויית למכשירי Android כמו טלפונים, מסכים גדולים ומכשירים מתקפלים. התכונה 'חזרה עם אנימציה' היא חלק ממהדורה רב-שנתית. אחרי הטמעה מלאה של התכונה הזו, המשתמשים יוכלו לראות תצוגה מקדימה של היעד או של תוצאה אחרת של תנועת החזרה לפני שהם משלימים אותה, וכך להחליט אם להמשיך או להישאר בתצוגה הנוכחית.
פרטים נוספים זמינים במאמר בנושא הוספת תמיכה בחיזוי תנועת החזרה.
מקורות מידע נוספים
מידע נוסף על ניווט באמצעות תנועות זמין במאמרים הבאים: