Trong một số quy trình người dùng, ứng dụng của bạn cần di chuyển tiêu điểm một cách rõ ràng đến một thành phần cụ thể. Ví dụ: khi người dùng nhấp vào nút "Tìm kiếm", bạn có thể muốn tự động đặt tiêu điểm vào trường nhập dữ liệu tìm kiếm.
Sử dụng FocusRequester
Cách yêu cầu rõ ràng tiêu điểm:
- Tạo và ghi nhớ một thực thể
FocusRequester:val focusRequester = remember { FocusRequester() }. - Gắn
FocusRequestervào thành phần kết hợp đích bằng đối tượng sửa đổifocusRequester. - Gọi
requestFocus()bên trong một lệnh gọi lại sự kiện (chẳng hạn nhưonClick) hoặc một phạm vi đồng thời.
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) )
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) ) Button(onClick = { focusRequester.requestFocus() }) { Text("Request focus on TextField") }
Đặt tiêu điểm ban đầu trên màn hình
Để đặt tiêu điểm ban đầu vào một thành phần cụ thể khi màn hình xuất hiện lần đầu, hãy kích hoạt requestFocus() bên trong LaunchedEffect(Unit):
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
Khi di chuyển giữa các vùng chứa hoặc quay lại từ một màn hình khác, bạn cũng có thể đính kèm focusRestorer() vào các vùng chứa mẹ để tự động trả lại tiêu điểm cho phần tử con được lấy tiêu điểm gần đây nhất.
Để biết thêm thông tin, hãy xem hướng dẫn Khôi phục 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
- Nhóm mục tiêu lấy tiêu điểm
- Khôi phục tiêu điểm
- Di chuyển và xoá tiêu điểm