Outil d'aide pour les raccourcis clavier

L'outil d'aide aux 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'outil d'aide aux raccourcis clavier afin d'améliorer la productivité et la facilité d'utilisation des utilisateurs.

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

Image 1. Outil d'aide pour les raccourcis clavier

Fournir des raccourcis vers l'outil d'aide aux raccourcis clavier

Vous pouvez fournir les listes de raccourcis clavier disponibles à l'outil d'aide aux raccourcis clavier en remplaçant le rappel de la 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 notifient 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 en groupes

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

Figure 2 : Catégories dans l'outil d'aide des raccourcis clavier.

Votre application enregistre deux groupes de raccourcis clavier ou plus 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 le montre 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 des 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 aux raccourcis clavier s'ouvre lorsque les utilisateurs appuient ou cliquent sur le bouton, ou appuient sur la touche Entrée.

val activity = LocalContext.current as Activity

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