キーボード ショートカット ヘルパーを使用すると、プラットフォームのキーボード ショートカットを見つけたり、アプリを起動したりできます。キーボード ショートカット ヘルパーにアプリのショートカットを公開すると、ユーザーの生産性と使いやすさが向上します。
ユーザーが Meta+/ キーを押すと、キーボード ショートカット画面が開きます。この画面は、Android 7.0(API レベル 24)以降で使用できます。
キーボード ショートカット ヘルパーへのショートカットの提供
onProvideKeyboardShortcuts()
ウィンドウ コールバックをオーバーライドすることで、利用可能なキーボード ショートカットのリストをキーボード ショートカット ヘルパーに提供できます。次のスニペットは、4 つのショートカットのグループを追加する onProvideKeyboardShortcuts()
の実装を示しています。
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 つのグループに分類されたキーボード ショートカットを示しています。
アプリは、グループごとに KeyboardShortcutGroup
オブジェクトを作成して、キーボード ショートカットの 2 つ以上のグループを登録します。次のスニペットでは、onProvideKeyboardShortcuts()
メソッドに渡される可変リストに 2 つの KeyboardShortCutGroup
オブジェクトが追加されています。図 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 = LocalContext.current as Activity
Button(onClick = { activity.requestShowKeyboardShortcuts() }) {
Text(text = "Show keyboard shortcuts")
}