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

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

図 1. ステータスバーとナビゲーション バー(まとめて「システムバー」と呼ばれます)。

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

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

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

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

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

  • ディスプレイ カットアウトとは、一部のデバイスにある表示サーフェスに拡張された領域です。ディスプレイ カットアウトにより、デバイスの前面にセンサーのスペースを確保できます。重要なコンテンツがカットアウト領域と重ならないように位置をクエリすることで、ディスプレイ カットアウトをサポートできます。

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