Phần Thứ tự truyền tải tiêu điểm mặc định đã mô tả cách Compose
tự động thêm hành vi truyền tải tiêu điểm vào các phần tử của bạn, cho cả hai
điều hướng một chiều (phím tab
) và hai chiều (các phím mũi tên). Trong một số
trong các trường hợp khác, bạn có thể cần phải ghi đè hành vi mặc định này và
về thứ tự duyệt qua bắt buộc.
Ghi đè thứ tự truyền tải một chiều
Để thay đổi thứ tự truyền tải tiêu điểm mặc định cho điều hướng một chiều, bạn tạo một tập hợp các tệp tham chiếu, mỗi tệp tham chiếu cho một thành phần kết hợp có thể làm tâm điểm:
val (first, second, third, fourth) = remember { FocusRequester.createRefs() }
Sau đó, hãy sử dụng đối tượng sửa đổi focusRequester
để liên kết từng đối tượng với một
thành phần kết hợp:
Column { Row { TextButton({}, Modifier.focusRequester(first)) { Text("First field") } TextButton({}, Modifier.focusRequester(third)) { Text("Third field") } } Row { TextButton({}, Modifier.focusRequester(second)) { Text("Second field") } TextButton({}, Modifier.focusRequester(fourth)) { Text("Fourth field") } } }
Giờ đây, bạn có thể sử dụng đối tượng sửa đổi focusProperties
để chỉ định thứ tự duyệt qua tuỳ chỉnh:
Column { Row { TextButton( {}, Modifier .focusRequester(first) .focusProperties { next = second } ) { Text("First field") } TextButton( {}, Modifier .focusRequester(third) .focusProperties { next = fourth } ) { Text("Third field") } } Row { TextButton( {}, Modifier .focusRequester(second) .focusProperties { next = third } ) { Text("Second field") } TextButton( {}, Modifier .focusRequester(fourth) .focusProperties { next = first } ) { Text("Fourth field") } } }
Ghi đè thứ tự truyền tải hai chiều
Bạn cũng có thể thêm quyền kiểm soát chi tiết đối với thứ tự truyền tải tiêu điểm
để điều hướng hai chiều bằng các phím mũi tên. Đối với mỗi phần tử, bạn có thể
ghi đè đích điều hướng mặc định cho mỗi chỉ đường bằng cách thêm
đối tượng sửa đổi focusProperties
và chỉ định mục sẽ xuất hiện,
hoặc hướng bất kỳ nào khác:
TextButton( onClick = {}, modifier = Modifier .focusRequester(fourth) .focusProperties { down = third right = second } ) {}
Kỹ thuật này không chỉ sử dụng hiệu quả mũi tên trên bàn phím mà còn hoạt động với Miếng đệm D-pad và gậy điều khiển trên bộ điều khiển có dây và không dây.
Đề xuất cho bạn
- Lưu ý: văn bản có đường liên kết sẽ hiện khi JavaScript tắt
- Thay đổi chế độ lấy nét
- Tiêu điểm trong Compose