التركيز في الحقول النصية

عندما يتنقّل المستخدمون في واجهة مستخدم 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()
)

التنقّل في التركيز الثنائي الأبعاد

عند استخدام مفاتيح الأسهم (أو لوحة مفاتيح رباعية الاتجاهات)، تحرّك مفاتيح الاتجاهات أولاً مؤشر النص (علامة الإقحام) داخل حقل النص:

  • التنقّل عموديًا (للأعلى أو للأسفل): يؤدي الضغط على المفتاح Down إلى نقل المؤشر للأسفل سطرًا تلو الآخر. عندما يصل مؤشر الإدراج إلى السطر الأخير، يؤدي الضغط على المفتاح السهم المتّجه للأسفل مرة أخرى إلى نقل التركيز إلى عنصر التركيز المجاور أسفل حقل النص. يؤدي الضغط على المفتاح السهم المتّجه للأعلى في السطر الأول إلى نقل التركيز إلى عنصر التركيز السابق.
  • التنقّل الأفقي (يمين / يسار / بداية / نهاية): يؤدي الضغط على مفاتيح الأسهم الأفقية إلى تحريك علامة الإقحام بين الأحرف. عندما يصل المؤشر إلى بداية مخزن النص المؤقت أو نهايته، يؤدي الضغط على مفتاح الاتجاه مرة أخرى إلى نقل التركيز إلى هدف التركيز المجاور في ذلك الاتجاه.

حقول النص على Android TV

على Android TV، باستخدام وحدات التحكّم في لوحة المفاتيح الاتجاهية بدون لوحة مفاتيح خارجية:

  1. عند نقل التركيز إلى حقل نص، يتم تلقائيًا عرض لوحة مفاتيح افتراضية على الشاشة.
  2. يتنقّل المستخدم بين مفاتيح لوحة المفاتيح على الشاشة باستخدام لوحة التحكّم الاتجاهية.
  3. يؤدي الضغط على الزر رجوع إلى إغلاق لوحة المفاتيح الافتراضية مع الحفاظ على التركيز على حقل النص.
  4. بعد إغلاق لوحة المفاتيح الافتراضية، يؤدي الضغط على مفاتيح الاتجاهات في لوحة التحكّم إلى نقل التركيز إلى أهداف التركيز المجاورة على الشاشة.
  5. يؤدي الضغط على زر الرجوع مرة ثانية إلى بدء عملية التنقّل للخلف العادية في النظام.