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

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

ご質問やフィードバックがある場合

よくある質問のページでクイック ガイドを確認するか、お問い合わせのうえご意見をお聞かせください。