アプリがコンテンツを描画する場所を完全に制御できるようにするには、次の設定手順を行います。これらの手順を行わないと、アプリはシステム UI の背後に黒色または単色を描画したり、ソフトウェア キーボードと同期してアニメーション化しなかったりする可能性があります。
- Android 15(API レベル 35)以降をターゲットとして、Android 15 以降でエッジ ツー エッジを適用します。アプリがシステム 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)のいずれかを使用します。これらのアプローチは多くの場合、相互に置き換え可能です。