فوکوس در فیلدهای متنی

وقتی کاربران با استفاده از صفحه‌کلید سخت‌افزاری، D-pad یا کنترلر چرخشی، رابط کاربری Compose را پیمایش می‌کنند، فیلدهای متنی در کنار سایر اهداف فوکوس، در پیمایش فوکوس شرکت می‌کنند.

به طور پیش‌فرض، فوکوس در فیلدهای متنی قرار نمی‌گیرد. برای اینکه به کاربران اجازه دهید یک فیلد متنی را ترک کنند، نیازی به اضافه کردن کنترل‌کننده‌های رویداد کلید سفارشی ( 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()
)

پیمایش فوکوس دوبعدی

هنگام استفاده از کلیدهای جهت‌نما (یا D-pad)، کلیدهای جهت‌نما ابتدا مکان‌نمای متن (علامت) را در فیلد متن حرکت می‌دهند:

  • پیمایش عمودی (بالا / پایین) : فشردن کلید Down نشانگر را خط به خط به سمت پایین حرکت می‌دهد. وقتی نشانگر به آخرین خط می‌رسد، فشردن مجدد کلید پایین ، فوکوس را به هدف فوکوس مجاور زیر فیلد متن منتقل می‌کند. فشردن کلید بالا در خط اول، فوکوس را به هدف فوکوس قبلی منتقل می‌کند.
  • پیمایش افقی (چپ / راست / شروع / پایان) : فشردن کلیدهای جهت‌نمای افقی، نشانگر را روی کاراکترها حرکت می‌دهد. وقتی نشانگر به ابتدا یا انتهای بافر متن می‌رسد، فشردن مجدد کلید جهت‌نما، فوکوس را به هدف فوکوس مجاور در آن جهت منتقل می‌کند.

فیلدهای متنی در اندروید تی‌وی

در اندروید تی‌وی، استفاده از کنترلرهای D-pad بدون کیبورد فیزیکی:

  1. انتقال فوکوس به یک فیلد متنی، به‌طور خودکار صفحه‌کلید نرم‌افزاری روی صفحه را نمایش می‌دهد.
  2. کاربر با استفاده از D-pad کلیدهای صفحه کلید نرم‌افزاری را پیمایش می‌کند.
  3. فشردن دکمه‌ی «بازگشت» (Back) ، صفحه‌کلید نرم‌افزاری را غیرفعال می‌کند و در عین حال تمرکز را روی فیلد متنی حفظ می‌کند.
  4. پس از بسته شدن صفحه‌کلید نرم‌افزاری، فشردن کلیدهای جهت‌نمای D-pad، فوکوس را به نقاط فوکوس مجاور روی صفحه نمایش منتقل می‌کند.
  5. فشار دادن دوباره دکمه برگشت، پیمایش استاندارد سیستم به عقب را فعال می‌کند.
{% کلمه به کلمه %} {% فعل کمکی %} {% کلمه به کلمه %} {% فعل کمکی %}