アプリでエッジ ツー エッジ ディスプレイを有効にするには、以下を呼び出します。
enableEdgeToEdge
。
ほとんどのアプリでは、これで十分です。このガイドでは、Google Chat で
アプリで enableEdgeToEdge
を使用せずにエッジ ツー エッジ対応を行う必要がある場合、
アプリを全画面でレイアウトする
WindowCompat.setDecorFitsSystemWindows(window,
false)
を使用する
システムバーの背後にアプリを配置する
例:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) }
Java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WindowCompat.setDecorFitsSystemWindows(getWindow(), false); }
システムバーの色を変更する
エッジ ツー エッジのレイアウトで動作する場合、アプリでデバイスの色を変更する必要がある。 その下のコンテンツを表示できるようになります。アプリの使用後 このステップが実行されると、ユーザーのすべての視覚的保護がシステムによって インターフェース(ジェスチャー ナビゲーション モードとボタンモード)
- ジェスチャー ナビゲーション モード: システムバーのコンテンツの色が 背後にあるコンテンツに応じて変化します できます。次の例では、ナビゲーション バーのハンドルが 明るいコンテンツの場合は暗い色、それより上の場合は明るい色 ダーク コンテンツです。
- ボタンモード: 半透明のモードを適用します。 スクリム システムバー(API レベル 29 以降の場合)または透過的なシステムの bar(API レベル 28 以前向け)を使用するには、
- ステータスバーのコンテンツの色: ステータスバーなど、ステータスバーのコンテンツの色を制御します。 表示することもできます。
themes.xml
ファイルを編集して、ナビゲーション バーの色を設定できます。
ステータスバーを透明にし、ステータスバーのコンテンツの色を任意の色に設定できます。
ダークモードです。
<!-- values-v29/themes.xml -->
<style name="Theme.MyApp">
<item name="android:navigationBarColor">
@android:color/transparent
</item>
<!-- Optional: set to transparent if your app is drawing behind the status bar. -->
<item name="android:statusBarColor">
@android:color/transparent
</item>
<!-- Optional: set for a light status bar with dark content. -->
<item name="android:windowLightStatusBar">
true
</item>
</style>
こちらの
WindowInsetsController
API
サポートライブラリを使用することを強くおすすめします
WindowInsetsControllerCompat
必要があります。代わりに WindowInsetsControllerCompat
API を使用できます。
ステータスバーのコンテンツの色を制御する theme.xml
。これを行うには、
setAppearanceLightNavigationBars()
true
を渡して、ナビゲーションのフォアグラウンドの色を
ライトの色または false
: デフォルトの色に戻します。
Kotlin
val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView) windowInsetsController?.isAppearanceLightNavigationBars = true
Java
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView()); if (windowInsetsController == null) { return; } windowInsetsController.setAppearanceLightNavigationBars(true);