FocusManager, odağı yönlü olarak taşımanıza veya tamamen temizlemenize olanak tanır.
Doğrudan bileşen hedefleme için FocusRequester kullanın (bkz. Programatik olarak odak isteme).
FocusManager ile yönlü odak hareketi
Odağı göreceli bir yönde programatik olarak taşımak için:
LocalFocusManager.currentkullanarakFocusManagerörneğini alın.moveFocus()işleviniFocusDirectiondeğeriyle (Next,Previous,Up,Down,Left,Right,EnterveyaExit) çağırın.
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
Net odak
Odaklanmayı şu anda odaklanılmış olan öğeden kaldırmak için (örneğin, kullanıcı Esc tuşuna bastığında) clearFocus() işlevini çağırın:
val focusManager = LocalFocusManager.current Box( modifier = Modifier.onPreviewKeyEvent { keyEvent -> if (keyEvent.key == Key.Escape && keyEvent.type == KeyEventType.KeyUp) { focusManager.clearFocus() true } else { false } } )
clearFocus() işlevi, isteğe bağlı bir force: Boolean = false parametresini kabul eder:
force = false(varsayılan): Odak kilitlerine uyar ve etkin bileşen odağı yakaladıysa odağı temizlemez.force = true: Bir bileşen odağı yakalamış olsa bile odağı koşulsuz olarak temizler.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir.
- Odak hedefleri
- Odak geçiş sırası
- Programatik olarak odak isteğinde bulunma