Android システムは、キーボードがデバイスに接続または切断されるたびに構成変更をトリガーします。取り外し可能なキーボードを備えた大画面デバイスでシームレスなユーザー エクスペリエンスを実現し、ユーザーの生産性を最大限に高めるには、アプリでキーボードの構成変更を効果的に管理する必要があります。
キーボードの変更によるアクティビティの再作成を防ぐ
取り外し可能なキーボードが接続または切断されたときにアクティビティが再作成されないようにするには、アプリ マニフェストの configChanges
属性にキーボード関連の値を追加し、アクティビティのビュー階層にビューを追加して、アプリが構成の変更をリッスンできるようにします。
1. configChanges
属性を宣言する
すでに管理されている構成変更のリストに keyboard|keyboardHidden
値を追加して、アプリ マニフェストの <activity>
要素を更新します。
<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 開発の幅広い目標を網羅する、厳選されたクイックガイド コレクションの一部です。
![](https://developer.android.com/static/images/quick-guides/collection-illustration.png?hl=ja)
大画面向けに最適化する
タブレット、折りたたみ式デバイス、ChromeOS デバイスで最適化されたユーザー エクスペリエンスをサポートするようにアプリを有効にします。
ご質問やフィードバックがある場合
よくある質問のページでクイックガイドをご覧になるか、お問い合わせフォームからご意見をお寄せください。