アプリがコンテンツを描画する場所を完全に制御できるようにするには、次の設定手順に沿って操作します。これらの手順を行わないと、アプリがシステム UI の背後に黒色または単色を描画したり、ソフトウェア キーボードと同期してアニメーション化しなかったりする可能性があります。
- Android 15 以降でエッジ ツー エッジを適用するには、Android 15(API レベル 35)以降をターゲットにします。アプリがシステム UI の背面に表示されます。インセットを処理することで、アプリの UI を調整できます。
- 必要に応じて、
Activity.onCreate()でenableEdgeToEdge()を呼び出します。これにより、以前の Android バージョンでアプリをエッジ ツー エッジにできます。 アクティビティの
AndroidManifest.xmlエントリでandroid:windowSoftInputMode="adjustResize"を設定します。この設定により、アプリはソフトウェア IME のサイズをインセットとして受け取ることができます。これにより、アプリで IME の表示と非表示が切り替わる際に、適切なレイアウトとパディングを適用できます。<!-- In your AndroidManifest.xml file: --> <activity android:name=".ui.MainActivity" android:label="@string/app_name" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.MyApplication" android:exported="true">重要な UI がシステムバーやディスプレイ カットアウトと重ならないように、インセットを処理します。インセットは、ルーラー、パディング修飾子、またはインセット サイズ修飾子を使用して処理できます。一部のマテリアル コンポーネントは、インセットを自動的に処理するか、
ScaffoldのPaddingValuesパラメータのようにインセットの処理を容易にするパラメータを備えています。インセット処理方法を 1 つ選択します。たとえば、Scaffold、Modifier.safeDrawingPadding()、Modifier.fitInside(WindowInsetsRulers.SafeDrawing.current)のいずれかを使用します。これらのアプローチは多くの場合、相互に置き換え可能です。