Özel etkileşim modlarında (ör. yerleştirilmiş çizim tuvali, oyun kumandası yüzeyi veya modal giriş iletişim kutusu) uygulamanızın odağı geçici olarak tek bir bileşene kilitlemesi ve Tab tuşunun veya yön tuşlarının başka bir yere gitmesini engellemesi gerekebilir.
Odak yakalama
Odaklanmak için FocusRequester üzerinde captureFocus() öğesini çağırın:
val focusRequester = remember { FocusRequester() } Box( modifier = Modifier .focusRequester(focusRequester) .focusable() .onFocusChanged { focusState -> if (focusState.isFocused) { focusRequester.captureFocus() } } )
Odak yakalandığında standart odak gezinme tuşları (ör. Sekme) odağı komşu bileşenlere taşımaz.
Yayın odağı
Yakalanan durumdan çıkmak ve kullanıcı arayüzünde normal odak gezinmesini geri yüklemek için freeFocus() işlevini çağırın:
IconButton( onClick = { focusRequester.freeFocus() } ) { Icon(Icons.Default.Close, contentDescription = "Exit focus lock") }
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir.
- Odak hedefleri
- Grup odak hedefleri
- Programatik olarak odak isteğinde bulunma