Khi người dùng thao tác trên giao diện người dùng Compose bằng bàn phím phần cứng, D-pad hoặc bộ điều khiển xoay, các trường văn bản sẽ tham gia vào hoạt động điều hướng bằng tiêu điểm cùng với các mục tiêu tiêu điểm khác.
Theo mặc định, tiêu điểm không bị giữ lại trong các trường văn bản. Bạn không cần thêm trình xử lý sự kiện khoá tuỳ chỉnh (onKeyEvent hoặc onPreviewKeyEvent) để cho phép người dùng rời khỏi một trường văn bản. Người dùng có thể thoát bằng cách nhấn tổ hợp phím Shift+Tab hoặc di chuyển qua ranh giới văn bản bằng các phím định hướng.
Bạn có thể dùng KeyboardOptions để cung cấp một thao tác bàn phím phần mềm trực quan, phối hợp với thao tác điều hướng bằng bàn phím thực.
ImeAction.Next sẽ di chuyển tiêu điểm đến mục tiêu lấy tiêu điểm tiếp theo, chẳng hạn như.
Duyệt qua tiêu điểm theo một chiều
Trong quá trình duyệt qua tiêu điểm theo một chiều, hành vi của phím Tab phụ thuộc vào lineLimits được định cấu hình trên trường văn bản:
- Trường văn bản một dòng (
TextFieldLineLimits.SingleLine) Khi bạn nhấn phím Tab, tiêu điểm sẽ di chuyển đến mục tiêu lấy tiêu điểm tiếp theo trên giao diện người dùng. - Trường văn bản nhiều dòng (
TextFieldLineLimits.MultiLine()hoặc mặc định): Nhấn phím Tab sẽ chèn một ký tự tab (\t) vào vùng đệm văn bản thay vì di chuyển tiêu điểm. - Thao tác di chuyển ngược (Shift+Tab): Nhấn tổ hợp phím Shift+Tab để di chuyển tiêu điểm ngược lại đến mục tiêu tiêu điểm trước đó trong cả trường văn bản một dòng và nhiều dòng.
// Single-line text field: Tab advances focus to the next focus target BasicTextField( state = singleLineState, lineLimits = TextFieldLineLimits.SingleLine, modifier = Modifier.fillMaxWidth() ) // Multi-line text field: Tab inserts '\t'; Shift + Tab moves to previous target BasicTextField( state = multiLineState, lineLimits = TextFieldLineLimits.MultiLine(), modifier = Modifier.fillMaxWidth() )
Duyệt qua tiêu điểm theo hai chiều
Khi bạn dùng các phím mũi tên (hoặc một D-pad), các phím định hướng sẽ di chuyển con trỏ văn bản (dấu mũ) trong trường văn bản:
- Điều hướng theo chiều dọc (lên / xuống):
Khi bạn nhấn phím
Down, con nháy sẽ di chuyển xuống từng dòng. Khi con nháy đạt đến dòng cuối cùng, thao tác nhấn lại phím Xuống sẽ chuyển tiêu điểm đến mục tiêu lấy tiêu điểm liền kề bên dưới trường văn bản. Khi nhấn phím Lên trên dòng đầu tiên, tiêu điểm sẽ di chuyển đến mục tiêu lấy tiêu điểm trước đó. - Thao tác điều hướng ngang (trái / phải / bắt đầu / kết thúc): Khi bạn nhấn các phím mũi tên ngang, con nháy sẽ di chuyển qua các ký tự. Khi con nháy đạt đến đầu hoặc cuối vùng đệm văn bản, việc nhấn lại phím định hướng sẽ chuyển tiêu điểm đến mục tiêu lấy tiêu điểm liền kề theo hướng đó.
Các trường văn bản trên Android TV
Trên Android TV, khi dùng bộ điều khiển D-pad mà không có bàn phím thực:
- Khi bạn di chuyển tiêu điểm đến một trường văn bản, bàn phím phần mềm trên màn hình sẽ tự động xuất hiện.
- Người dùng di chuyển các phím của bàn phím phần mềm bằng D-pad.
- Khi nhấn nút Quay lại, bàn phím phần mềm sẽ đóng trong khi vẫn giữ tiêu điểm trên trường văn bản.
- Sau khi bàn phím phần mềm bị đóng, thao tác nhấn các phím định hướng trên D-pad sẽ di chuyển tiêu điểm đến các mục tiêu lấy tiêu điểm lân cận trên màn hình.
- Khi nhấn nút Quay lại lần thứ hai, thao tác này sẽ kích hoạt chế độ điều hướng quay lại tiêu chuẩn của hệ thống.
Đề 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
- Nhóm mục tiêu lấy tiêu điểm
- Kiểm thử thao tác điều hướng bằng tiêu điểm