התמקדות בשדות טקסט

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

כברירת מחדל, המיקוד לא נשאר בשדות טקסט. לא צריך להוסיף גורמים מטפלים מותאמים אישית באירועים של מקשים (onKeyEvent או onPreviewKeyEvent) כדי לאפשר למשתמשים לצאת משדה טקסט. המשתמשים תמיד יכולים לצאת מהמצב הזה באמצעות Shift+Tab או על ידי ניווט מעבר לגבולות הטקסט באמצעות מקשי החיצים.

אפשר להשתמש ב-KeyboardOptions כדי לספק פעולה אינטואיטיבית של מקלדת וירטואלית שמתואמת עם ניווט במקלדת פיזית. לדוגמה, לחיצה על ImeAction.Next מעבירה את המיקוד ליעד המיקוד הבא.

מעבר חד-ממדי בין רכיבים

במעבר מיקוד חד-ממדי, ההתנהגות של מקש Tab תלויה ב-lineLimits שמוגדר בשדה הטקסט:

  • שדות טקסט עם שורה אחת (TextFieldLineLimits.SingleLine) לחיצה על המקש Tab מעבירה את המיקוד ליעד המיקוד הבא בממשק המשתמש.
  • שדות טקסט עם כמה שורות (TextFieldLineLimits.MultiLine() או ברירת מחדל): לחיצה על המקש Tab מוסיפה תו טאב (\t) למאגר הטקסט במקום להעביר את המיקוד.
  • ניווט הפוך (Shift+Tab): הקשה על Shift+Tab מעבירה את המיקוד אחורה ליעד המיקוד הקודם, גם בשדות טקסט של שורה אחת וגם בשדות טקסט של כמה שורות.

// Single-line text field: Tab advances focus to the next focus target
BasicTextField(
    state = singleLineState,
    lineLimits = TextFieldLineLimits.SingleLine,
    modifier = Modifier.fillMaxWidth()
)

// Multi-line text field: Tab inserts '\t'; Shift + Tab moves to previous target
BasicTextField(
    state = multiLineState,
    lineLimits = TextFieldLineLimits.MultiLine(),
    modifier = Modifier.fillMaxWidth()
)

מעבר דו-ממדי בין פריטים בפוקוס

כשמשתמשים במקשי החיצים (או בכפתורי החיצים), מקשי הכיוון מזיזים קודם את סמן הטקסט בתוך שדה הטקסט:

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

שדות טקסט ב-Android TV

ב-Android TV, כשמשתמשים בכפתורי החיצים (D-pad) בלי מקלדת פיזית:

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