Trong các chế độ tương tác chuyên biệt (chẳng hạn như canvas vẽ được nhúng, bề mặt tay điều khiển trò chơi hoặc hộp thoại nhập phương thức), ứng dụng của bạn có thể cần tạm thời khoá tiêu điểm vào một thành phần duy nhất và ngăn phím Tab hoặc phím mũi tên di chuyển ra xa.
Lấy tiêu điểm
Để lấy tiêu điểm, hãy gọi captureFocus() trên FocusRequester:
val focusRequester = remember { FocusRequester() } Box( modifier = Modifier .focusRequester(focusRequester) .focusable() .onFocusChanged { focusState -> if (focusState.isFocused) { focusRequester.captureFocus() } } )
Trong khi tiêu điểm được ghi lại, các phím điều hướng tiêu điểm chuẩn (chẳng hạn như Tab) không di chuyển tiêu điểm đến các thành phần lân cận.
Bỏ tiêu điểm
Để thoát khỏi trạng thái đã chụp và khôi phục thao tác điều hướng tiêu điểm thông thường trên giao diện người dùng, hãy gọi freeFocus():
IconButton( onClick = { focusRequester.freeFocus() } ) { Icon(Icons.Default.Close, contentDescription = "Exit focus lock") }
Đề 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
- Yêu cầu lấy tiêu điểm theo phương thức lập trình