取り外し可能なキーボードの構成変更を管理する

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 デバイスで最適化されたユーザー エクスペリエンスをサポートするようにアプリを有効にします。

ご不明な点やフィードバックがある場合

よくある質問のページでクイック ガイドについて確認するか、お問い合わせください。