キーボード ショートカット ヘルパーを使用すると、プラットフォームと開いているアプリのキーボード ショートカットを見つけることができます。アプリのショートカットをキーボード ショートカット ヘルパーに公開すると、ユーザーの生産性と使いやすさが向上します。
ユーザーは 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 = LocalActivity.current Button( onClick = { activity?.requestShowKeyboardShortcuts() } ) { Text(text = "Show keyboard shortcuts") }