Trình trợ giúp phím tắt

Trình trợ giúp phím tắt cho phép người dùng khám phá các phím tắt cho nền tảng và các ứng dụng đang mở. Xuất bản phím tắt của ứng dụng trong Trình trợ giúp phím tắt nhằm cải thiện hiệu suất và giúp người dùng dễ sử dụng.

Người dùng nhấn Meta+/ để mở màn hình phím tắt có trên Android 7.0 (API cấp 24) trở lên.

Ứng dụng đang mở trên một thiết bị cho thấy các phím tắt hệ thống.
Hình 1. Trình trợ giúp phím tắt.

Cung cấp phím tắt cho Trình trợ giúp phím tắt

Bạn có thể cung cấp danh sách phím tắt có sẵn cho Trình trợ giúp phím tắt bằng cách ghi đè Lệnh gọi lại cửa sổ onProvideKeyboardShortcuts(). Đoạn mã sau đây minh hoạ cách triển khai onProvideKeyboardShortcuts() để thêm một nhóm gồm 4 phím tắt:

class MainActivity : ComponentActivity() {
    // Activity codes such as overridden onStart method.

    override fun onProvideKeyboardShortcuts(
        data: MutableList<KeyboardShortcutGroup>?,
        menu: Menu?,
        deviceId: Int
    ) {
        val shortcutGroup = KeyboardShortcutGroup(
            "Cursor movement",
            listOf(
                KeyboardShortcutInfo("Up", KeyEvent.KEYCODE_P, KeyEvent.META_CTRL_ON),
                KeyboardShortcutInfo("Down", KeyEvent.KEYCODE_N, KeyEvent.META_CTRL_ON),
                KeyboardShortcutInfo("Forward", KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON),
                KeyboardShortcutInfo("Backward", KeyEvent.KEYCODE_B, KeyEvent.META_CTRL_ON),
            )
        )
        data?.add(shortcutGroup)
    }
}

KeyboardShortcutInfo mô tả một phím tắt. Danh sách phím tắt được gói dưới dạng Đối tượng KeyboardShortcutGroup. Các ứng dụng sẽ thông báo cho các phím tắt hiện có cho Trình trợ giúp phím tắt bằng cách thêm các đối tượng KeyboardShortcutGroup vào danh sách có thể thay đổi được truyền làm tham số đầu tiên của phương thức.

Sắp xếp các phím tắt theo nhóm

Trình trợ giúp phím tắt hiển thị phím tắt theo các nhóm riêng biệt để người dùng có thể tìm thấy lối tắt theo trường hợp sử dụng hoặc cho các màn hình ứng dụng của bạn. Hình 2 minh hoạ các phím tắt được phân thành hai nhóm: chuyển động con trỏ và chỉnh sửa tin nhắn.

Ứng dụng mở trên một thiết bị cho thấy các nhóm phím tắt.
Hình 2. Các danh mục trong Trình trợ giúp phím tắt.

Ứng dụng của bạn đăng ký hai hoặc nhiều nhóm phím tắt bằng cách tạo một KeyboardShortcutGroup đối tượng cho mỗi nhóm. Trong đoạn mã sau, 2 đối tượng KeyboardShortCutGroup được thêm vào phần tử danh sách có thể thay đổi được truyền đến phương thức onProvideKeyboardShortcuts(). Các đối tượng được hiển thị dưới dạng danh mục trong Trình trợ giúp phím tắt dưới dạng hình 2 cho thấy.

override fun onProvideKeyboardShortcuts(
    data: MutableList<KeyboardShortcutGroup>?,
    menu: Menu?,
    deviceId: Int
) {
    val cursorMovement = KeyboardShortcutGroup(
        "Cursor movement",
        listOf(
            KeyboardShortcutInfo("Up", KeyEvent.KEYCODE_P, KeyEvent.META_CTRL_ON),
            KeyboardShortcutInfo("Down", KeyEvent.KEYCODE_N, KeyEvent.META_CTRL_ON),
            KeyboardShortcutInfo("Forward", KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON),
            KeyboardShortcutInfo("Backward", KeyEvent.KEYCODE_B, KeyEvent.META_CTRL_ON),
        )
    )

    val messageEdit = KeyboardShortcutGroup(
        "Message editing",
        listOf(
            KeyboardShortcutInfo("Select All", KeyEvent.KEYCODE_A, KeyEvent.META_CTRL_ON),
            KeyboardShortcutInfo("Send a message", KeyEvent.KEYCODE_ENTER, KeyEvent.META_SHIFT_ON)
        )
    )

    data?.add(cursorMovement)
    data?.add(messageEdit)
}

Mở Trình trợ giúp phím tắt từ mã

Các ứng dụng hiển thị màn hình phím tắt theo đang gọi requestShowKeyboardShortcuts() . Trong đoạn mã sau, Trình trợ giúp phím tắt sẽ mở ra khi người dùng nhấn vào hoặc nhấp vào nút hay nhấn phím Enter.

val activity = LocalContext.current as Activity

Button(onClick = { activity.requestShowKeyboardShortcuts() }) {
    Text(text = "Show keyboard shortcuts")
}