يمكن للمستخدمين نقل تركيز لوحة المفاتيح بين عناصر واجهة المستخدم باستخدام مفتاح Tab أو مفاتيح الاتجاهات (الأسهم / لوحة D):
- Tab / Shift+Tab: لنقل التركيز للأمام أو للخلف بترتيب الظهور الأحادي الأبعاد
- مفاتيح الاتجاهات: لتحريك التركيز في بُعدَين (أعلى وأسفل ويمين ويسار)
التنقّل في التركيز أحادي الأبعاد
في التنقّل أحادي الأبعاد باستخدام التركيز، يؤدي الضغط على مفتاح Tab إلى نقل التركيز في واجهة المستخدم استنادًا إلى ترتيب الظهور المرئي على الشاشة.
على سبيل المثال، عند ترتيب أربعة أزرار في صفوف:
Column { Row { Button(onClick = { /* ... */ }) { Text("1st") } Button(onClick = { /* ... */ }) { Text("2nd") } } Row { Button(onClick = { /* ... */ }) { Text("3rd") } Button(onClick = { /* ... */ }) { Text("4th") } } }
يؤدي الضغط على مفتاح Tab إلى نقل التركيز بالتسلسل بين الأزرار بالترتيب التالي:
- الزر الأول (في أعلى الصفحة من جهة اليمين)
- الزر الثاني (في الأعلى)
- الزر الثالث (أسفل الصفحة من جهة اليمين)
- الزر الرابع (في الأسفل)
سيؤدي الضغط على Tab على العنصر الأخير إلى الانتقال مرة أخرى إلى أول عنصر يمكن التركيز عليه. يؤدي الضغط على Shift+Tab إلى نقل التركيز بترتيب عكسي.
التنقّل في التركيز الثنائي الأبعاد
يؤدي الضغط على مفاتيح الأسهم في لوحة المفاتيح أو استخدام لوحة التحكّم إلى بدء التنقّل في التركيز الثنائي الأبعاد.
في التنقّل الثنائي الأبعاد، يفحص النظام الإحداثيات الهندسية والحدود المكانية لعناصر واجهة المستخدم لتحديد الهدف الأقرب في الاتجاه المطلوب.
لا يتم الانتقال إلى بداية أو نهاية الصفحة عند التنقّل بين العناصر القابلة للتركيز في بُعدَين. إذا ضغط المستخدم على المفتاح سهم للأسفل أثناء التركيز على العنصر السفلي، سيظل التركيز على هذا العنصر بدلاً من الانتقال إلى أعلى الشاشة.
إعادة ضبط ترتيب التنقّل باستخدام المؤشر من خلال النقر
عند التبديل بين لوحة مفاتيح خارجية وماوس أو لوحة لمس على أجهزة سطح المكتب أو الأجهزة ذات الشاشات الكبيرة، اتّبِع الخطوات التالية:
- محو التركيز عند النقر أو الضغط: يؤدي النقر أو الضغط على مساحة غير تفاعلية باستخدام الماوس أو لوحة اللمس إلى إزالة التركيز من العنصر النشط.
- إعادة بدء التنقّل: بعد إزالة التركيز، تؤدي الضغطة التالية على مفتاح Tab إلى إعادة بدء التنقّل الأحادي الأبعاد عند أول عنصر مستهدف يمكن التركيز عليه بترتيب المظهر المرئي، بدلاً من استئناف التنقّل من العنصر النشط السابق. وهي مماثلة للتنقّل في التركيز الثنائي الأبعاد. تنقل مفاتيح الاتجاه تركيز لوحة المفاتيح إلى عنصر التركيز الأقرب في الاتجاه المطلوب.
للحصول على تفاصيل حول محو التركيز آليًا، يُرجى الاطّلاع على نقل التركيز ومحوه.
تخصيص ترتيب التنقّل بين العناصر التي يمكن التركيز عليها
يمكنك تخصيص سلوك التنقّل باستخدام المعدِّل focusProperties.
تخصيص ترتيب التنقّل الأحادي الأبعاد
لتجاوز التنقّل الأحادي الأبعاد، حدِّد السمة next أو previous باستخدام FocusRequester:
- أنشئ عنصر
FocusRequesterباستخدامremember { FocusRequester() }. - أضِف
FocusRequesterإلى الدالة المركّبة المستهدَفة باستخدام عنصر التعديلfocusRequester. - طبِّق عنصر التعديل
focusPropertiesعلى الدالة المركّبة المصدر وعيِّنFocusRequesterإلىnext(بالنسبة إلى مفتاح Tab) أوprevious(بالنسبة إلى Shift+مفتاح Tab).
val (first, second, third) = remember { FocusRequester.createRefs() } Column { Button( onClick = { /* ... */ }, modifier = Modifier .focusRequester(first) .focusProperties { next = third } ) { Text("First (Tab jumps to Third)") } Button( onClick = { /* ... */ }, modifier = Modifier.focusRequester(second) ) { Text("Second") } Button( onClick = { /* ... */ }, modifier = Modifier.focusRequester(third) ) { Text("Third") } }
تخصيص ترتيب التنقّل الثنائي الأبعاد
وبالمثل، يمكنك إلغاء عملية التنقّل في التركيز الثنائي الأبعاد
من خلال تعيين مثيلات FocusRequester
إلى up أو down أو start أو end أو left أو right
ضمن focusProperties:
val (topButton, bottomButton) = remember { FocusRequester.createRefs() } Button( onClick = { /* ... */ }, modifier = Modifier .focusRequester(topButton) .focusProperties { down = bottomButton right = bottomButton } ) { Text("Top button") } Button( onClick = { /* ... */ }, modifier = Modifier.focusRequester(bottomButton) ) { Text("Bottom button") }
لحظر التنقّل باستخدام التركيز في اتجاه معيّن
(على سبيل المثال، عند حدود التنسيق)،
عيِّن القيمة FocusRequester.Cancel لهذه السمة
(على سبيل المثال، down = FocusRequester.Cancel).
للاحتفاظ بشكل صريح بخوارزمية التنقّل التلقائية للنظام
في اتجاه معيّن، عيِّن القيمة FocusRequester.Default.
اقتراحات مخصصة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون JavaScript غير مفعّلة
- أهداف التركيز
- التركيز في الحقول النصية
- استهدافات تركيز المجموعة
- نقل التركيز وإزالته
- طلب التركيز آليًا
- اختبار التنقّل باستخدام التركيز