エッジ ツー エッジ対応アプリは、システムバーの下に UI を描画することで、画面全体を活用します。
Android スキル
GitHub で表示エッジ ツー エッジのサポートを追加する
android skills add --skill edge-to-edge要点
- エッジ ツー エッジのエクスペリエンスを実現するため、システムバーの下に背景とスクロール コンテンツを描画します。
- システム インセットの下にタップ操作やドラッグ ターゲットを追加しないでください。エッジ ツー エッジやジェスチャー ナビゲーションと競合します。
システムバーの背後にコンテンツを描画する
エッジ ツー エッジ機能を使用すると、システムバーの下に UI を描画して没入感のあるエクスペリエンスを実現できます。
アプリは、 インセットに対応することで、コンテンツの重複に対処できます。インセットは、 システムバーや ディスプレイ カットアウトなどの実機機能との重複を避けるために、アプリのコンテンツに適用する必要があるパディングの量を表します。Compose と Compose および Views でエッジ ツー エッジをサポートし、インセットを処理する方法についてご確認ください。
エッジ ツー エッジのユースケースを設計する際は、次の種類のインセットに注意してください。
- システムバー インセットは、タップ可能で、システムバーによって視覚的に隠されないようにする必要がある UI に適用されます。
- システム ジェスチャー インセットは、OS が使用するジェスチャー ナビゲーション領域に適用され、アプリよりも優先されます。
- ディスプレイ カットアウト インセットは、カメラのカットアウトなど、ディスプレイ サーフェスに拡張されるデバイス領域に適用されます。
ステータスバーに関する考慮事項
基本的なシステムバーの設計ガイダンスについては、Android のシステムバーをご覧ください。次のセクションでは、ステータスバーに関するその他の考慮事項について説明します。
コンテンツをスクロールする
スクロール中にトップ アプリバーを折りたたむ必要があります。マテリアル 3 の TopAppBar を折りたたむ方法をご確認ください。マテリアル 3 では、小さいトップ アプリバーをステータスバーの高さまで折りたたむか、画面外にスクロールできます。中サイズと大サイズのトップ アプリバーは、小さいアプリバーに折りたたむことができます。マテリアルのガイダンスをご覧ください。
すべきこと
すべきこと
UI が下にスクロールするときにステータスバーが半透明になるようにして、ステータスバー アイコンが乱雑に見えないようにする必要があります。これを行うには、まず LazyColumn または RecyclerView のドキュメントの手順に沿って、スクロール可能な UI をエッジ ツー エッジにします。次に、次のいずれかの方法でシステムバーが半透明になるようにします。
- 該当する場合は、スクロール時にマテリアル 3 の TopAppBar の自動保護に依存します。
- カスタムのグラデーション コンポーザブルを作成するか、GradientProtection を View に使用します。Compose でこれを行う方法について詳しくは、システムバー の保護をご覧ください。
アダプティブ レイアウトの場合は、背景色が異なるペインに対して個別の保護が適用されるようにします。
すべきでないこと
すべきこと
同様に、ナビゲーション ドロワーにも、アプリの他の部分とは別の保護を適用する必要があります。
マテリアル 3 の TopAppBar の組み込み保護とカスタム保護の両方を使用するなど、ステータスバー保護を重ねないでください。
ナビゲーション バーに関する考慮事項
基本的なナビゲーション バーの設計ガイダンスについては、Android のシステムバーをご覧ください。 次のセクションでは、ナビゲーション バーに関するその他の考慮事項について説明します。
コンテンツをスクロールする
スクロール中に下部アプリバーを折りたたむ必要があります。
すべきこと
すべきこと
ディスプレイ カットアウト
ディスプレイ カットアウトは、UI の外観に影響する可能性があります。アプリは、ディスプレイ カットアウト インセットを処理して、UI の重要な部分がディスプレイ カットアウトの下に描画されないようにする必要があります。
すべきこと
すべきでないこと
ただし、次の図に示すように、アプリバーの背景はディスプレイ カットアウトに描画する必要があります。
水平カルーセルがディスプレイ カットアウトに描画されるようにします。
Compose と View でディスプレイ カットアウトをサポートする方法についてご確認ください。
その他のガイダンス
一般に、背景と区切り線もエッジ ツー エッジで描画する必要がありますが、テキストやボタンなどのコンテンツは、システム UI やハードウェア要素を避けるためにインセットする必要があります。