Android Multi-Window Support では、マルチウィンドウ モード用にアプリを構成する方法は?
マルチウィンドウ表示を有効または無効にするために、マニフェストのアクティビティノードまたはアプリケーションノードで設定する必要がある属性はどれですか?
Android Multi-Window Support では、マルチウィンドウ モード用にアプリを構成する方法は?
マルチウィンドウ表示を有効または無効にするために、マニフェストのアクティビティノードまたはアプリケーションノードで設定する必要がある属性はどれですか?
特定のアクティビティ (またはアプリケーション全体) に対してマルチウィンドウを有効にするための最小要件は、resizeableActivity=true
パラメーターを<activity>
(または<application>
) タグに追加することです。
Android Developers のマルチウィンドウ サポートガイドの概要は次のとおりです。
アプリがAndroid Nをターゲットにしている場合、アプリのアクティビティがマルチウィンドウ表示をサポートする方法とサポートするかどうかを構成できます。マニフェストに属性を設定して、サイズとレイアウトの両方を制御できます。ルート アクティビティの属性設定は、そのタスク スタック内のすべてのアクティビティに適用されます。たとえば、ルート アクティビティがandroid:resizeableActivity
true に設定されている場合、タスク スタック内のすべてのアクティビティはサイズ変更可能です。
注: Android N より前のバージョンの SDK を使用して多方向アプリをビルドし、ユーザーがアプリをマルチウィンドウ モードで使用すると、システムは強制的にアプリのサイズを変更します。システムは、アプリが予期しない動作をする可能性があることをユーザーに警告するダイアログ ボックスを表示します。システムは固定方向のアプリのサイズを変更しません。ユーザーがマルチウィンドウ モードで固定方向のアプリを開こうとすると、アプリが画面全体を引き継ぎます。
マルチウィンドウ表示を有効または無効にするには、マニフェストのアクティビティノードまたはアプリケーションノードでこの属性を設定します。
android:resizeableActivity=["true" | "false"]
この属性がtrueに設定されている場合、アクティビティは分割画面モードとフリーフォーム モードで起動できます。属性がfalseに設定されている場合、アクティビティはマルチウィンドウ モードをサポートしていません。この値が false で、ユーザーがアクティビティをマルチウィンドウ モードで起動しようとすると、アクティビティが全画面表示になります。
アプリがAndroid Nを対象としているが、この属性の値を指定していない場合、属性の値はデフォルトでtrueになります。
マニフェストのアクティビティノードでこの属性を設定して、アクティビティがピクチャー イン ピクチャー表示をサポートしているかどうかを示します。android:resizeableActivity
がfalse の場合、この属性は無視されます。
android:supportsPictureInPicture=["true" | "false"]
レイアウト属性
Android Nでは、レイアウトマニフェスト要素は、マルチウィンドウ モードでのアクティビティの動作に影響を与えるいくつかの属性をサポートしています。
android:defaultWidth
フリーフォーム モードで起動したときのアクティビティのデフォルトの幅。
android:defaultHeight
フリーフォーム モードで起動したときのアクティビティのデフォルトの高さ。
android:gravity
フリーフォーム モードで起動したときのアクティビティの初期配置。適切な値については、重力リファレンスを参照してください。
android:minHeight, android:minWidth
画面分割モードとフリーフォーム モードの両方でのアクティビティの最小高さと最小幅。ユーザーが分割画面モードで分割線を移動して、アクティビティを指定された最小値よりも小さくすると、システムはアクティビティをユーザーが要求したサイズにトリミングします。
たとえば、次のコードは、アクティビティがフリーフォーム モードで表示されるときに、アクティビティのデフォルトのサイズと場所、および最小サイズを指定する方法を示しています。
<activity android:name=".MyActivity">
<layout android:defaultHeight="500dp"
android:defaultWidth="600dp"
android:gravity="top|end"
android:minHeight="450dp"
android:minWidth="300dp" />