ウィンドウ インセット内でアプリを配置する

Compose を試す
Jetpack Compose は、Android に推奨される UI ツールキットです。Compose で WindowInsets を操作する方法を学習します。

図 1: ステータスバーとナビゲーション バー(総称してシステムバー)

コンテンツが画面の上端から下端まで伸びるようにすべてのアプリレイアウトを行います。これは Android 15(API レベル 35)以降のデフォルトの動作です。つまり、アプリの上下領域は、ステータスバーとナビゲーション バーの背後に配置されます。ステータスバーとナビゲーション バーを総称してシステムバーと呼びます。システムバーは、一般的に、通知の表示、デバイス ステータスの通信、デバイス ナビゲーション専用の領域です。

アプリとシステム UI が表示される領域とが重なる部分は、ウィンドウ インセットの一例です。ウィンドウ インセットは、アプリがシステム UI と交差できる画面の部分を表します。UI のこれらの部分と交差すると、コンテンツの上に表示される可能性がありますが、システム ジェスチャーについてアプリに通知することもできます。

次の種類のウィンドウ インセットを使用できます。

  • デフォルトでは、オプトインしてアプリ ウィンドウを画面全体に拡張し、システムバーの背後にアプリ コンテンツをエッジ ツー エッジで描画します。オフセットを使用すると、重要なコンテンツやタップ ターゲットがシステムバーの背後に隠れないようにすることができます。

  • 映画や画像などのコンテンツを表示するアプリは、一時的にシステムバーを非表示にして、没入感を高めることができます。システムバーを変更する前に、ユーザーのニーズと期待を慎重に検討してください。システムバーは、システムを操作してデバイスのステータスを表示する標準的な方法をユーザーに提供することを意味します。

  • 一部のデバイスでは、「ディスプレイ カットアウト」とは、デバイスの前面にセンサー用のスペースを確保するためにディスプレイ面まで延びる領域です。重要なコンテンツがカットアウト領域と重ならないように位置をクエリすることで、ディスプレイ カットアウトをサポートできます。

  • キーボード遷移は、ウィンドウ インセットが動的に更新される一般的な例です。アプリは、現在のキーボードの状態を監視し、プログラムで状態を切り替え、ウィンドウ インセットのアニメーションをサポートして、キーボード遷移間でアプリ コンテンツをシームレスにアニメーション化できます。