ตัวช่วยเหลือสำหรับแป้นพิมพ์ลัด

ตัวช่วยแป้นพิมพ์ลัดช่วยให้ผู้ใช้ค้นพบแป้นพิมพ์ลัดสำหรับแพลตฟอร์มและแอปที่เปิดอยู่ เผยแพร่ทางลัดของแอปในตัวช่วยแป้นพิมพ์ลัดเพื่อเพิ่มประสิทธิภาพการทำงานและความสะดวกในการใช้งานของผู้ใช้

ผู้ใช้กด Meta+/ เพื่อเปิดหน้าจอแป้นพิมพ์ลัด ซึ่งพร้อมใช้งานใน Android 7.0 (ระดับ API 24) ขึ้นไป

แอปพลิเคชันเปิดอยู่บนอุปกรณ์ที่แสดงแป้นพิมพ์ลัดสำหรับระบบ
รูปที่ 1 ตัวช่วยแป้นพิมพ์ลัด

ระบุแป้นพิมพ์ลัดไปยังตัวช่วยแป้นพิมพ์ลัด

คุณสามารถระบุรายการแป้นพิมพ์ลัดที่ใช้ได้ให้กับตัวช่วยแป้นพิมพ์ลัดโดยลบล้าง Callback ของหน้าต่าง onProvideKeyboardShortcuts() ข้อมูลโค้ดต่อไปนี้แสดงการใช้งาน onProvideKeyboardShortcuts() เพื่อเพิ่มกลุ่มทางลัด 4 รายการ

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 อธิบายแป้นพิมพ์ลัด รายการแป้นพิมพ์ลัดจะรวมอยู่ในออบเจ็กต์ KeyboardShortcutGroup แอปจะแจ้งแป้นพิมพ์ลัดที่ใช้ได้ไปยังตัวช่วยแป้นพิมพ์ลัดโดยเพิ่มออบเจ็กต์ KeyboardShortcutGroup ลงในรายการที่เปลี่ยนแปลงได้ซึ่งส่งเป็นพารามิเตอร์แรกของเมธอด

จัดระเบียบแป้นพิมพ์ลัดด้วยกลุ่ม

ตัวช่วยแป้นพิมพ์ลัดจะแสดงแป้นพิมพ์ลัดในกลุ่มที่แยกกันเพื่อให้ผู้ใช้ค้นหาแป้นพิมพ์ลัดตามกรณีการใช้งานหรือสำหรับหน้าจอของแอปได้ รูปที่ 2 แสดงแป้นพิมพ์ลัดที่จัดหมวดหมู่เป็น 2 กลุ่ม ได้แก่ การเคลื่อนไหวของเคอร์เซอร์และการแก้ไขข้อความ

แอปพลิเคชันเปิดอยู่บนอุปกรณ์ที่แสดงกลุ่มทางลัด
รูปที่ 2 หมวดหมู่ในตัวช่วยแป้นพิมพ์ลัด

แอปของคุณจะลงทะเบียนแป้นพิมพ์ลัดอย่างน้อย 2 กลุ่มโดยสร้างออบเจ็กต์ KeyboardShortcutGroup สำหรับแต่ละกลุ่ม ในข้อมูลโค้ดต่อไปนี้ ระบบจะเพิ่มออบเจ็กต์ KeyboardShortCutGroup 2 รายการลงในรายการที่เปลี่ยนแปลงได้ซึ่งส่งไปยังเมธอด onProvideKeyboardShortcuts() ออบเจ็กต์จะแสดงเป็นหมวดหมู่ในตัวช่วยแป้นพิมพ์ลัดดังที่แสดงในรูปที่ 2

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)
}

เปิดตัวช่วยแป้นพิมพ์ลัดจากโค้ด

แอปจะแสดงหน้าจอแป้นพิมพ์ลัดโดยเรียกใช้เมธอด requestShowKeyboardShortcuts() ในข้อมูลโค้ดต่อไปนี้ ตัวช่วยแป้นพิมพ์ลัดจะเปิดขึ้นเมื่อผู้ใช้แตะหรือคลิกปุ่ม หรือกดแป้น Enter

val activity = LocalActivity.current

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