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

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

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

要点

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

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

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

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

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

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

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

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

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

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

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

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

  • スクロール時に、必要に応じて Material 3 TopAppBar の自動保護を利用します。
  • カスタム グラデーション コンポーザブルを作成します。詳しくは、システムバーの保護をご覧ください。
図 3. ジェスチャー インセットが緑色でハイライト表示されたアプリ。

アダプティブ レイアウトでは、背景色が異なるペインに個別の保護が設定されていることを確認します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Compose でディスプレイ カットアウトをサポートする方法をご覧ください。

その他のガイダンス

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