העברת המיקוד לכתיבה

באינטראקציה עם האפליקציה, המשתמשים לרוב משתמשים במנגנוני קלט שאינם מגע:

  • סביבות מחשב: המשתמשים מנווטים ומזינים נתונים באמצעות מקלדות חומרה ומשטחי מגע פיזיים.
  • ‫Android TV: המשתמשים מנווטים בממשק באמצעות כפתורי החיצים (D-pad).
  • רכב: נהגים ונוסעים יכולים ליצור אינטראקציה באמצעות בקרים סיבוביים.
  • מכשירים מתקפלים וטאבלטים: משתמשים מחברים כיסויי מקלדת ואביזרים חיצוניים לקלט.

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

גורמים חשובים לניווט אינטואיטיבי באמצעות המקלדת

כדי לספק חוויית משתמש מעולה במסכים גדולים ובמכשירים ללא מסך מגע, כדאי לעצב את האפליקציה לפי העקרונות הבאים:

  1. מיקוד ראשוני הגיוני: המיקוד הראשוני צריך להיות על הרכיב שהמשתמשים צפויים לקיים איתו אינטראקציה כשהם נכנסים למסך.
  2. סדר ניווט עקבי: צריך לספק מעבר צפוי בין רכיבים באמצעות התמקדות חד-ממדית (Tab) ודו-ממדית (מקשי החיצים או לחצני הכיוון).
  3. מיקוד מתמשך: שחזור המיקוד בצורה חלקה אחרי הפרעות, סגירת תיבות דו-שיח או שינויים בהגדרות.
  4. מצב מיקוד ברור: הצגת רמזים ויזואליים בולטים ונגישים (כמו טבעות או אדוות של מיקוד) שמציינים איזה רכיב נמצא כרגע במיקוד.
  5. גלילה אינטואיטיבית: מוודאים שהרכיב הממוקד וההקשר שמסביבו נגללים בצורה חלקה לאזור התצוגה הגלוי.

מדריכים לשיפור הריכוז

במדריכים הבאים מוסבר איך לנהל ולהתאים אישית את המיקוד ב-Compose:

  • יעדי מיקוד: במאמר הזה מוסבר איך רכיבים אינטראקטיביים הופכים ליעדי מיקוד ואיך להגדיר רכיבים בהתאמה אישית כרכיבים שניתן להתמקד בהם.
  • סדר מעבר בין רכיבים: הסבר על סדר המעבר בין רכיבים במראה תלת-ממדי ועל ניווט מרחבי דו-ממדי, ואיך להתאים אישית את נתיבי המעבר.
  • התמקדות בשדות טקסט: הסבר על האופן שבו שדות טקסט של שורה אחת ושדות טקסט של כמה שורות מטפלים במקש Tab ובמקשי החיצים, ועל האופן שבו פועלת האינטראקציה עם IME בטלוויזיה.
  • קיבוץ יעדי המיקוד: קיבוץ רכיבים באמצעות focusGroup וחסימת הפניה אוטומטית בכניסה או ביציאה.
  • ‫Restore focus: שחזור המיקוד לילדים שהיו פעילים בעבר ב-containers, טיפול ברכיבי ניווט וניהול המיקוד במעברים בין מסכים.
  • הצגת מצב המיקוד: חשוב להשתמש ברמזים חזותיים ובהצגה מותאמת אישית כדי להדגיש רכיבים ממוקדים.
  • ‫React to focus: Observe focus changes and query focus state properties using onFocusChanged.
  • בקשת מיקוד באופן פרוגרמטי: העברת המיקוד באופן מפורש בתגובה לפעולות של המשתמשים או לשגיאות אימות.
  • העברה וביטול של המיקוד: אפשר להעביר או לבטל את המיקוד באופן פרוגרמטי באמצעות FocusManager.
  • לכידה ושחרור של המיקוד: לכידת המיקוד לאינטראקציות משניות של חלון מודאלי ושחרור בטוח שלו.
  • בדיקת הניווט באמצעות המיקוד: כותבים בדיקות אוטומטיות של כתיבת הודעות כדי לוודא את האינטראקציות של המקלדת עם שדות הטקסט במימד אחד, בשני מימדים ובשלושה מימדים.