Varsayılan odak geçiş sırası bölümünde, Oluştur'un hem tek boyutlu (tab
tuşu) hem de iki boyutlu (ok tuşları) gezinme için öğelerinize odak geçişi davranışını nasıl otomatik olarak eklediği açıklandı. Bazı durumlarda, bu varsayılan davranışı geçersiz kılmanız ve gerekli geçiş sırası hakkında daha açık olmanız gerekebilir.
Tek boyutlu geçiş sırasını geçersiz kıl
Tek boyutlu gezinmenin varsayılan odak geçiş sırasını değiştirmek için, odaklanılabilir her bir oluşturma için bir referans grubu oluşturursunuz:
val (first, second, third, fourth) = remember { FocusRequester.createRefs() }
Ardından, her birini bir mülkle ilişkilendirmek için focusRequester
değiştiricisini kullanın:
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") } } }
Artık focusProperties
değiştiricisini kullanarak özel bir geçiş sırası belirtebilirsiniz:
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") } } }
İki boyutlu geçiş sırasını geçersiz kıl
Ayrıca ok tuşlarıyla, iki boyutlu gezinme için odak geçiş sırası üzerinde ayrıntılı denetim eklemek de mümkündür. Her öğe için focusProperties
değiştiricisini ekleyip yukarı, aşağı veya başka bir yönde çıkacak öğeyi belirterek yol tariflerinin her biri için varsayılan gezinme hedefini geçersiz kılabilirsiniz:
TextButton( onClick = {}, modifier = Modifier .focusRequester(fourth) .focusProperties { down = third right = second } ) {}
Bu teknik yalnızca klavyedeki okları etkili bir şekilde kullanmakla kalmaz, kablolu ve kablosuz kumandalardaki d-pad'lerle ve çubuklarla da kullanılabilir.
Sizin için önerilenler
- Not: Bağlantı metni JavaScript kapalıyken gösterilir
- Odaklanma davranışını değiştirme
- Oluşturma penceresinde odaklan