Ayuda en las combinaciones de teclas

El Asistente de combinaciones de teclas permite a los usuarios descubrir combinaciones de teclas para la plataforma y abrir apps. Publica los atajos de tu app en el Asistente de combinaciones de teclas para mejorar la productividad y la facilidad de uso.

Los usuarios presionan Meta+/ para abrir la pantalla de combinaciones de teclas, que está disponible en Android 7.0 (nivel de API 24) y versiones posteriores.

Aplicación abierta en un dispositivo que muestra las combinaciones de teclas del sistema.
Figura 1. Asistente de combinaciones de teclas

Cómo proporcionar atajos al Asistente de combinaciones de teclas

Para proporcionar listas de combinaciones de teclas disponibles al Asistente de combinaciones de teclas, anula la onProvideKeyboardShortcuts() devolución de llamada de la ventana. En el siguiente fragmento, se muestra una implementación de onProvideKeyboardShortcuts() para agregar un grupo de cuatro atajos:

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 describe una combinación de teclas. La lista de combinaciones de teclas se incluye como un KeyboardShortcutGroup objeto. Las apps notifican las combinaciones de teclas disponibles al Asistente de combinaciones de teclas agregando los objetos KeyboardShortcutGroup a la lista mutable que se pasó como el primer parámetro del método.

Cómo organizar las combinaciones de teclas con grupos

El Asistente de combinaciones de teclas muestra las combinaciones de teclas en grupos separados para que los usuarios puedan encontrarlas por caso de uso o para las pantallas de tu app. En la Figura 2, se muestran las combinaciones de teclas clasificadas en dos grupos: movimiento del cursor y edición de mensajes.

Aplicación abierta en un dispositivo que muestra grupos de combinaciones de teclas.
Figura 2. Categorías en el Asistente de combinaciones de teclas

Tu app registra dos o más grupos de combinaciones de teclas creando un objeto KeyboardShortcutGroup para cada grupo. En el siguiente fragmento, se agregan dos objetos KeyboardShortCutGroup a la lista mutable que se pasó al método onProvideKeyboardShortcuts(). Los objetos se muestran como categorías en el Asistente de combinaciones de teclas, como se muestra en la Figura 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)
}

Cómo abrir el Asistente de combinaciones de teclas desde el código

Las apps muestran la pantalla de combinaciones de teclas llamando al método requestShowKeyboardShortcuts(). En el siguiente fragmento, el Asistente de combinaciones de teclas se abre cuando los usuarios presionan o hacen clic en el botón o presionan la tecla Enter.

val activity = LocalActivity.current

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