Android システムは、キーボードがデバイスに接続または取り外されるたびに、構成の変更をトリガーします。シームレスなユーザー エクスペリエンスを提供し、キーボードを取り外せる大画面デバイスでユーザーの生産性を最大限に高めるには、アプリでキーボード構成の変更を効果的に管理する必要があります。
結果
アプリは、実行中のアクティビティを再作成することなく、外部キーボードの接続または接続解除に対応します。
キーボードの変更時にアクティビティの再作成を防止
着脱式キーボードの取り付けまたは取り外し時にアクティビティが再作成されないようにするには、アプリ マニフェストの configChanges
属性にキーボード関連の値を追加し、アクティビティのビュー階層にビューを追加して、アプリが構成の変更をリッスンできるようにします。
1. configChanges
属性を宣言する
アプリ マニフェストの <activity>
要素を更新し、すでに管理されている構成変更のリストに keyboard|keyboardHidden
値を追加します。
<activity
...
android:configChanges="...|keyboard|keyboardHidden">
2. ビュー階層に空のビューを追加する
新しいビューを宣言し、ビューの onConfigurationChanged()
メソッド内にハンドラ コードを追加します。
Kotlin
val v = object : View(this) { override fun onConfigurationChanged(newConfig: Configuration?) { super.onConfigurationChanged(newConfig) // Handler code here. } }
Java
View v = new View(this) { @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Handler code here. } };
要点
android:configChanges
: アプリ マニフェストの<activity>
要素の属性。アプリが管理する構成変更についてシステムに通知します。View#onConfigurationChanged()
: 新しいアプリ構成の伝播に対応するメソッド。
このガイドを含むコレクション
このガイドは、Android 開発のより広範な目標を対象とした、厳選されたクイックガイド コレクションの一部です。

大画面向けに最適化する
タブレット、折りたたみ式デバイス、ChromeOS デバイスで最適化されたユーザー エクスペリエンスをサポートするようにアプリを有効にします。
ご質問やフィードバックがある場合
よくある質問のページでクイック ガイドを確認するか、お問い合わせのうえご意見をお聞かせください。