Android システムは、キーボードがデバイスに接続または取り外されるたびに、構成の変更をトリガーします。シームレスなユーザー エクスペリエンスを提供し、キーボードを取り外せる大画面デバイスでユーザーの生産性を最大限に高めるには、アプリでキーボード構成の変更を効果的に管理する必要があります。
結果
アプリは、実行中のアクティビティを再作成することなく、外部キーボードの接続または取り外しに対応します。
バージョンの互換性
この実装では、プロジェクトの minSDK を API レベル 8 に設定します(View#onConfigurationChanged() を参照)。
依存関係
なし。
キーボードの変更時にアクティビティの再作成を防止
着脱式キーボードが接続または取り外されたときにアクティビティが再作成されないようにするには、アプリ マニフェストの 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 デバイスで最適化されたユーザー エクスペリエンスをサポートするようにアプリを有効にします。
ご質問やフィードバックがある場合
よくある質問のページでクイック ガイドを確認するか、お問い合わせください。