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

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

図 1.左。エッジ ツー エッジに対応していないアプリ。右。エッジ ツー エッジに対応しているアプリ。

要点

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

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

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

アプリは、 インセットに対応することで、コンテンツの重複に対処できます。インセットは、 システムバーや ディスプレイ カットアウトなどの実機機能との重複を避けるために、アプリのコンテンツに適用する必要があるパディングの量を表します。Compose と Compose および Views でエッジ ツー エッジをサポートし、インセットを処理する方法についてご確認ください。

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

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

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

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

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

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

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

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

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

アダプティブ レイアウトの場合は、背景色が異なるペインに対して個別の保護が適用されるようにします。

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

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

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

マテリアル 3 の TopAppBar の組み込み保護とカスタム保護の両方を使用するなど、ステータスバー保護を重ねないでください。

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

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

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

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

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

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

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

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

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

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

図 6.エッジ ツー エッジの水平ディスプレイ。カルーセルがディスプレイ カットアウトをスクロールします。

ComposeView でディスプレイ カットアウトをサポートする方法についてご確認ください。

その他のガイダンス

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