FocusManager cho phép bạn di chuyển tiêu điểm theo hướng hoặc xoá hoàn toàn tiêu điểm.
Sử dụng FocusRequester để nhắm đến thành phần trực tiếp (xem phần Yêu cầu tiêu điểm theo chương trình).
Di chuyển tiêu điểm theo hướng bằng FocusManager
Cách di chuyển tiêu điểm theo phương thức lập trình theo hướng tương đối:
- Lấy thực thể
FocusManagerbằngLocalFocusManager.current. - Gọi
moveFocus()bằng giá trịFocusDirection(Next,Previous,Up,Down,Left,Right,EnterhoặcExit).
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
Xoá tiêu điểm
Để xoá tiêu điểm khỏi bất kỳ phần tử nào hiện đang giữ tiêu điểm (ví dụ: khi người dùng nhấn phím Esc), hãy gọi clearFocus():
val focusManager = LocalFocusManager.current Box( modifier = Modifier.onPreviewKeyEvent { keyEvent -> if (keyEvent.key == Key.Escape && keyEvent.type == KeyEventType.KeyUp) { focusManager.clearFocus() true } else { false } } )
Hàm clearFocus() chấp nhận tham số force: Boolean = false (không bắt buộc):
force = false(mặc định): Tuân thủ các khoá tiêu điểm và sẽ không xoá tiêu điểm nếu thành phần đang hoạt động đã lấy tiêu điểm.force = true: Xoá tiêu điểm vô điều kiện ngay cả khi một thành phần đã lấy tiêu điểm.
Đề xuất cho bạn
- Lưu ý: văn bản có đường liên kết sẽ hiện khi JavaScript tắt
- Mục tiêu lấy tiêu điểm
- Thứ tự duyệt qua tiêu điểm
- Yêu cầu lấy tiêu điểm theo phương thức lập trình