エッジ ツー エッジのデザイン

エッジ ツー エッジのアプリは、システムバーの下に UI を描画することで、画面全体を活用します。

図 1. 左です。エッジ ツー エッジではないアプリ。正解です。エッジ ツー エッジのアプリ。

まとめ

  • エッジ ツー エッジ エクスペリエンスを実現するため、システムバーの下に背景とスクロール コンテンツを描画します。
  • タップ ジェスチャーやドラッグ ターゲットをシステム インセットの下に追加することは避けてください。これらはエッジ ツー エッジやジェスチャー ナビゲーションと競合します。
図 2. ジェスチャー インセットが緑色でハイライト表示されたアプリ。

コンテンツをシステムバーの背後に描画する

エッジ ツー エッジ機能を使用すると、没入感のあるエクスペリエンスを実現するために、システムバーの下に UI を描画できます。

アプリは、インセットに対応することで、コンテンツの重複に対処できます。インセットは、システムバーや、ディスプレイ カットアウトなどの実機機能との重複を避けるために、アプリのコンテンツにどの程度のパディングが必要かを記述します。ComposeViews でエッジ ツー エッジをサポートし、インセットを処理する方法について確認する。

エッジ ツー エッジのユースケースを設計する際は、次のタイプのインセットに注意してください。

  • システムバー インセットは、タップ可能で、システムバーによって視覚的に隠されないようにする必要がある UI に適用されます。
  • システム ジェスチャー インセットは、アプリよりも優先される OS で使用されるジェスチャー ナビゲーション領域に適用されます。
  • ディスプレイ カットアウト インセットは、カメラ カットアウトなど、ディスプレイ表面に拡張されるデバイス領域に適用されます。

ステータスバーに関する考慮事項

基本的なシステムバーの設計ガイダンスについては、Android システムバーをご覧ください。次のセクションでは、ステータスバーに関するその他の考慮事項について説明します。

コンテンツをスクロールする

トップ アプリバーはスクロール中に折りたたまれる必要があります。Material 3 の TopAppBar を折りたたむ方法について説明します。マテリアル 3 では、小さい上部アプリバーはステータスバーの高さまで折りたたむか、画面外にスクロールできます。中サイズと大サイズのトップ アプリバーは、小さいアプリバーに折りたたむことができます。マテリアル ガイダンスをご覧ください。

アプリバーが固定されている場合は、小さなトップ アプリバーをステータスバーの高さに折りたたみます。
小さなトップ アプリバーが固定されていない場合は、一致する背景色のカラー グラデーションを追加します。

ステータスバーは、UI が下にスクロールするときに半透明になり、ステータスバーのアイコンがごちゃごちゃして見えないようにする必要があります。これを行うには、まず LazyColumn または RecyclerView のドキュメントの手順を実装して、スクロール可能な UI をエッジ ツー エッジにします。次に、次のいずれかの操作を行って、システムバーが半透明であることを確認します。

  • 該当する場合は、スクロール時にマテリアル 3 の TopAppBar の自動保護を利用します。
  • カスタム グラデーション コンポーザブルを作成するか、View に GradientProtection を使用します。Compose でこれを行う方法について詳しくは、システムバーの保護をご覧ください。
図 3. ジェスチャー インセットが緑色でハイライト表示されたアプリ。

アダプティブ レイアウトの場合、背景色が異なるペインに対して個別の保護があることを確認します。

各ペインの背景と一致しないグラデーション保護を設定する
各ペインの背景に一致するグラデーション保護がある。

同様に、ナビゲーション ドロワーもアプリの他の部分とは別に保護する必要があります。

図 4. ナビゲーション ドロワーの半透明のステータスバー。この画像は、アプリではなくナビゲーション ドロワーのステータスバー保護を示しています。

ステータスバーの保護を重ねないでください(たとえば、Material 3 TopAppBar の組み込み保護とカスタム保護の両方を使用するなど)。

基本的なナビゲーション バーの設計ガイダンスについては、Android システムバーをご覧ください。次のセクションでは、ナビゲーション バーに関するその他の考慮事項について説明します。

コンテンツをスクロールする

下部アプリバーはスクロール中に折りたたまれる必要があります。

ボトム アプリバーがアニメーションで消えるときに、3 ボタン ナビゲーションのシステムバー スクリーンを追加
ジェスチャー ナビゲーションを透明なままにし、追加のスクリムは追加しないでください。

ディスプレイ カットアウト

ディスプレイ カットアウトは UI の外観に影響する可能性があります。アプリは、UI の重要な部分がディスプレイ カットアウトの下に描画されないように、ディスプレイ カットアウト インセットを処理する必要があります。

ディスプレイ カットアウト インセットを使用して重要な UI をインセットします。
重要な UI を画面の端に配置します。

ただし、次の図に示すように、アプリバーの背景が単色の場合は、ディスプレイ カットアウトに描画されます。

図 5. 重要な UI はインセットされ、アプリバーの背景はディスプレイ カットアウトに描画されます。

水平カルーセルがディスプレイ カットアウト内に描画されるようにします。

図 6. 端から端まで水平に表示され、カルーセルがディスプレイ カットアウトをスクロールする。

ComposeView でディスプレイ カットアウトをサポートする方法について説明します。

その他のガイダンス

一般に、背景と区切り線も端から端まで描画する必要があります。一方、テキストやボタンなどのコンテンツは、システム UI やハードウェア要素を避けるためにインセットする必要があります。