Outil d'aide pour raccourcis clavier

L'aide sur les raccourcis clavier permet aux utilisateurs de découvrir les raccourcis clavier de la plate-forme et des applications ouvertes. Publiez les raccourcis de votre application dans l'assistant de raccourcis clavier pour améliorer la productivité et la facilité d'utilisation.

Les utilisateurs appuient sur Meta+/ pour ouvrir l'écran des raccourcis clavier, disponible sur Android 7.0 (niveau d'API 24) ou version ultérieure.

Application ouverte sur un appareil affichant les raccourcis système.
Figure 1. Outil d'aide pour raccourcis clavier.

Fournir des raccourcis à l'outil d'aide pour raccourcis clavier

Vous pouvez fournir des listes de raccourcis clavier disponibles à l'aide des raccourcis clavier en remplaçant le rappel de fenêtre onProvideKeyboardShortcuts(). L'extrait de code suivant illustre une implémentation de onProvideKeyboardShortcuts() pour ajouter un groupe de quatre raccourcis :

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 décrit un raccourci clavier. La liste des raccourcis clavier est encapsulée en tant qu'objet KeyboardShortcutGroup. Les applications signalent les raccourcis clavier disponibles à l'outil d'aide aux raccourcis clavier en ajoutant les objets KeyboardShortcutGroup à la liste modifiable transmise en tant que premier paramètre de la méthode.

Organiser les raccourcis clavier avec des groupes

L'assistant de raccourcis clavier affiche les raccourcis clavier dans des groupes distincts afin que les utilisateurs puissent trouver des raccourcis par cas d'utilisation ou pour les écrans de votre application. La figure 2 montre les raccourcis clavier classés en deux groupes : déplacement du curseur et modification du message.

Application ouverte sur un appareil affichant des groupes de raccourcis.
Figure 2 : Catégories de l'outil d'aide pour raccourcis clavier.

Votre application enregistre au moins deux groupes de raccourcis clavier en créant un objet KeyboardShortcutGroup pour chaque groupe. Dans l'extrait de code suivant, deux objets KeyboardShortCutGroup sont ajoutés à la liste modifiable transmise à la méthode onProvideKeyboardShortcuts(). Les objets sont affichés sous forme de catégories dans l'outil d'aide aux raccourcis clavier, comme illustré dans la figure 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)
}

Ouvrir l'outil d'aide pour les raccourcis clavier à partir du code

Les applications affichent l'écran des raccourcis clavier en appelant la méthode requestShowKeyboardShortcuts(). Dans l'extrait suivant, l'outil d'aide sur les raccourcis clavier s'ouvre lorsque les utilisateurs appuient ou cliquent sur le bouton, ou appuient sur la touche Entrée.

val activity = LocalActivity.current

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