FocusManager, odağı yönlü olarak taşımanıza veya tamamen temizlemenize olanak tanır.
Doğrudan bileşen hedefleme için FocusRequester kullanın (Programatik olarak odaklanma isteğinde bulunma bölümüne bakın).
FocusManager ile yönlü odak hareketi
Odağı programatik olarak göreceli bir yöne taşımak için:
LocalFocusManager.currentyöntemini kullanarakFocusManagerörneğini alın.FocusDirectiondeğeriyle (Next,Previous,Up,Down,Left,Right,EnterveyaExit)moveFocus()işlevini çağırın.
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
Odağı temizle
Odağı, o anda odaklanılmış olan öğeden kaldırmak için (örneğin, kullanıcı Esc tuşuna bastığında) clearFocus() yöntemini ç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 kilitlerini dikkate alır 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 devre dışı bırakıldığında bağlantı metni gösterilir.
- Odak hedefleri
- Odak geçiş sırası
- Programatik olarak odaklanma isteğinde bulunma