FocusManager 可讓您移動焦點方向或完全清除焦點。使用 FocusRequester 直接指定元件 (請參閱「以程式輔助方式要求焦點」)。
使用 FocusManager 移動焦點方向
如要以程式輔助方式朝相對方向移動焦點,請按照下列步驟操作:
- 使用
LocalFocusManager.current取得FocusManager例項。 - 使用
FocusDirection值 (Next、Previous、Up、Down、Left、Right、Enter或Exit) 呼叫moveFocus()。
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
清除焦點
如要從目前保留焦點的元素中移除焦點 (例如使用者按下 Esc 鍵時),請呼叫 clearFocus():
val focusManager = LocalFocusManager.current Box( modifier = Modifier.onPreviewKeyEvent { keyEvent -> if (keyEvent.key == Key.Escape && keyEvent.type == KeyEventType.KeyUp) { focusManager.clearFocus() true } else { false } } )
clearFocus() 函式接受選用的 force: Boolean = false 參數:
force = false(預設):遵循焦點鎖定,如果有效元件已擷取焦點,則不會清除焦點。force = true:即使元件已擷取焦點,也會無條件清除焦點。
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- 焦點目標
- 焦點遍歷順序
- 透過程式輔助要求焦點