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

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

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

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

העברת המיקוד במימד אחד

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

  • שדות טקסט בשורה אחת (TextFieldLineLimits.SingleLine) לחיצה על מקש Tab מעבירה את המיקוד אל יעד המיקוד הבא בממשק המשתמש.
  • שדות טקסט עם מספר שורות (TextFieldLineLimits.MultiLine() או ברירת מחדל): לחיצה על המקש Tab מוסיפה תו 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()
)

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

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

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

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

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

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