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

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

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

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

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

使用できるウィンドウの切り欠きの種類は次のとおりです。

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

  • 映画や画像などのコンテンツを表示するアプリは、没入感を高めるためにシステムバーを一時的に非表示にできます。システムバーは、ユーザーがデバイスを操作し、デバイスのステータスを表示するための標準的な方法です。そのため、システムバーを変更する前に、ユーザーの想定やニーズについて慎重に検討する必要があります。

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

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