Özel etkileşim modlarında (ör. yerleşik çizim tuvali, oyun kumandası yüzeyi veya kalıcı giriş iletişim kutusu) uygulamanızın, odağı geçici olarak tek bir bileşene kilitlemesi ve Sekme veya yön tuşlarının başka bir yere gitmesini engellemesi gerekebilir.
Odaklanma
Odağı yakalamak için bir FocusRequester üzerinde captureFocus() yöntemini ç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.
Odağı bırakma
Yakalanan durumdan çıkmak ve kullanıcı arayüzünde normal odak gezinmesini geri yüklemek için freeFocus() yöntemini çağırın:
IconButton( onClick = { focusRequester.freeFocus() } ) { Icon(Icons.Default.Close, contentDescription = "Exit focus lock") }
Sizin için önerilenler
- Not: JavaScript devre dışı bırakıldığında bağlantı metni gösterilir.
- Odak hedefleri
- Grup odak hedefleri
- Programatik olarak odaklanma isteğinde bulunma