כל רכיבי ה-Glimmer של Jetpack פיתוח נייטיב מיועדים לפעול עם שיטות קלט רגילות שדומות לשיטות קלט בטלפונים, כמו הקשה או החלקה על לוח המגע של משקפי ה-AI, וגם לקבל פקודות קלט שספציפיות לחומרה של משקפי ה-AI, כמו לחצני המצלמה והתצוגה. רכיבי Jetpack פיתוח נייטיב Glimmer מטפלים אוטומטית באירועי הקלט הנדרשים. כדי להטמיע התנהגויות אינטראקציה ספציפיות ברכיבים מותאמים אישית, אפשר להשתמש בממשקי API קיימים של Compose כמו Modifier.draggable או Modifier.scrollable.
במשקפי AI עם תצוגה, קלט של מצביע יכול להשפיע על המיקוד:
- הקשה: אינטראקציה ישירה להפעלת אלמנט. המיקוד עובר לרכיב כשמשתמש מבצע איתו אינטראקציה.
- החלקה: משמשת לניווט ולגלילה. מחוות החלקה שלא מטופלות מתורגמות אוטומטית לתנועות של מיקוד, וכך מאפשרות ניווט חלק בממשק המשתמש בלי קלט ישיר של מצביע.
התנהגות וסדר הניווט
התמקדות בתנועה ובשינוי הסדר בזמן שהמשתמש עובר בין מסכים באפליקציה.
הזזת המיקוד
בקונטיינר שאפשר לגלול בו, המיקוד עובר ברציפות כשמבצעים החלקה בלוח המגע. ברכיבים נפרדים כמו שורה של לחצנים, כל החלקה מעבירה את המיקוד מרכיב אחד לרכיב הבא.
סדר המיקוד
בדיוק כמו ב-Jetpack פיתוח נייטיב, Jetpack Compose Glimmer משתמש בחיפוש מיקוד חד-ממדי. מידע נוסף על סדר מעבר המיקוד זמין במאמר שינוי סדר מעבר המיקוד.
כדי לשנות את הפריט שמוגדר כברירת מחדל למיקוד, אפשר להוסיף Modifier.focusGroup() ברמה העליונה ולציין onEnter מותאם אישית: focusProperty
Modifier.focusProperties {
onEnter = {
initialFocus.requestFocus()
cancelFocusChange()
}
}
.focusGroup()
קונטיינרים של גלילה
כדי להבטיח חוויית משתמש אופטימלית, רכיבים עם אפשרות גלילה כמו רשימות צריכים להיות הרכיב העיקרי היחיד במסך. כדי למנוע בלבול בניווט ולקדם תנועת מיקוד חלקה וצפויה, מומלץ לא להציב רשימה שאפשר לגלול בה ישירות מעל או מתחת לרכיבים אינטראקטיביים אחרים, כמו כפתורים.
מצבי ברירת מחדל של התמקדות
Jetpack פיתוח נייטיב Glimmer מטמיע מצבי מיקוד שמוגדרים כברירת מחדל בכל הרכיבים האינטראקטיביים שלו, כולל משטחים, כרטיסים ופריטים ברשימה, כדי לספק משוב חזותי עקבי וברור במהלך אינטראקציית משתמש.
ברירת מחדל: צבע הרקע של הכפתור נגזר מ-
GlimmerTheme.colors.surface, התוכן הראשי שלו מחשב את צבע התוכן של הרקע הזה, והסמלים הםGlimmerTheme.colors.primary.במיקוד: רוחב הגבול גדל כדי להראות שהאלמנט נמצא במיקוד.
התמקדות + לחיצה: הרקע מוגדר לערך
GlimmerTheme.colors.surfaceעם אטימות מלאה כדי לציין שהוא נבחר.