يصف قسم ترتيب الاجتياز التلقائي للتركيز كيف يضيف نظام Compose
تلقائيًا سلوك المسح التركيز إلى عناصرك، للتنقل أحادي البُعد (مفتاح tab
) والتنقّل الثنائي الأبعاد (مفاتيح الأسهم). في بعض الحالات، قد تحتاج إلى إلغاء هذا السلوك الافتراضي وأن تكون أكثر وضوحًا
بشأن ترتيب الاجتياز المطلوب.
إلغاء ترتيب الاجتياز أحادي البعد
لتغيير ترتيب الاجتياز الافتراضي للتنقل أحادي البعد، يمكنك إنشاء مجموعة من المراجع، واحدة لكل عنصر يمكن التركيز عليه:
val (first, second, third, fourth) = remember { FocusRequester.createRefs() }
بعد ذلك، استخدِم مفتاح التعديل focusRequester
لربط كل عنصر
بمادة مركّبة:
Column { Row { TextButton({}, Modifier.focusRequester(first)) { Text("First field") } TextButton({}, Modifier.focusRequester(third)) { Text("Third field") } } Row { TextButton({}, Modifier.focusRequester(second)) { Text("Second field") } TextButton({}, Modifier.focusRequester(fourth)) { Text("Fourth field") } } }
يمكنك الآن استخدام مفتاح التعديل focusProperties
لتحديد ترتيب مسح مخصّص:
Column { Row { TextButton( {}, Modifier .focusRequester(first) .focusProperties { next = second } ) { Text("First field") } TextButton( {}, Modifier .focusRequester(third) .focusProperties { next = fourth } ) { Text("Third field") } } Row { TextButton( {}, Modifier .focusRequester(second) .focusProperties { next = third } ) { Text("Second field") } TextButton( {}, Modifier .focusRequester(fourth) .focusProperties { next = first } ) { Text("Fourth field") } } }
إلغاء ترتيب الاجتياز الثنائي الأبعاد
من الممكن أيضًا إضافة عناصر تحكم دقيقة في ترتيب مسح التركيز
للتنقل الثنائي الأبعاد باستخدام مفاتيح الأسهم. بالنسبة إلى كل عنصر، يمكنك إلغاء وجهة التنقّل التلقائية لكل اتجاه من خلال إضافة أداة التعديل focusProperties
وتحديد العنصر الذي سيظهر أو سيأتي أو أي اتجاه آخر:
TextButton( onClick = {}, modifier = Modifier .focusRequester(fourth) .focusProperties { down = third right = second } ) {}
لا يستخدم هذا الأسلوب أسهم لوحة المفاتيح بشكل فعال فحسب، بل سيعمل مع لوحات التحكّم والعصي على وحدات التحكم السلكية واللاسلكية.
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عند إيقاف JavaScript.
- تغيير سلوك التركيز
- التركيز على ميزة "إنشاء"