O Assistente de atalhos de teclado permite que os usuários descubram atalhos de teclado para a plataforma e abram apps. Publique os atalhos do seu app no Assistente de atalhos do teclado para melhorar a produtividade do usuário e a facilidade de uso.
Os usuários pressionam Meta+/ para abrir a tela de atalhos do teclado, disponível no Android 7.0 (nível 24 da API) e versões mais recentes.
Fornecer atalhos para o Assistente de atalhos do teclado
Você pode fornecer listas de atalhos de teclado disponíveis para
o assistente de atalhos do teclado substituindo o
callback da janela onProvideKeyboardShortcuts()
.
O snippet abaixo demonstra uma implementação de
onProvideKeyboardShortcuts()
para adicionar um grupo de quatro atalhos:
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
descreve um atalho de teclado.
A lista de atalhos de teclado é unida como um objeto
KeyboardShortcutGroup
.
Os apps notificam os atalhos de teclado disponíveis para o assistente de atalhos do teclado adicionando
os objetos KeyboardShortcutGroup
à lista mutável transmitida
como o primeiro parâmetro do método.
Organizar atalhos do teclado com grupos
O assistente de atalhos do teclado mostra atalhos em grupos separados para que os usuários possam encontrar atalhos por caso de uso ou para telas do seu app. A Figura 2 mostra os atalhos de teclado categorizados em dois grupos: movimento do cursor e edição de mensagens.
O app registra dois ou mais grupos de atalhos de teclado criando um
objeto KeyboardShortcutGroup
para cada um deles.
No snippet abaixo, dois objetos KeyboardShortCutGroup
são adicionados à
lista mutável transmitida para o método onProvideKeyboardShortcuts()
.
Os objetos são mostrados como categorias no assistente de atalhos do teclado, como
mostrado na 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)
}
Abrir o assistente de atalhos do teclado no código
Os apps exibem a tela de atalhos do teclado
chamando o método requestShowKeyboardShortcuts()
.
No snippet a seguir, o Assistente de atalhos do teclado é aberto quando
os usuários tocam ou clicam no botão ou pressionam a tecla Enter.
val activity = LocalContext.current as Activity
Button(onClick = { activity.requestShowKeyboardShortcuts() }) {
Text(text = "Show keyboard shortcuts")
}