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 mục tiêu thành phần trực tiếp (xem phần Yêu cầu tiêu điểm theo phương thức lập 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 đã ghi lại 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 đã thu nạp 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