diff --git a/res/layout/settings_activity.xml b/res/layout/settings_activity.xml index c70d5bf22c..5edd2df3f5 100644 --- a/res/layout/settings_activity.xml +++ b/res/layout/settings_activity.xml @@ -18,7 +18,8 @@ android:id="@+id/content_parent" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + android:fitsSystemWindows="true"> { + v.setPadding( + v.getPaddingLeft(), + v.getPaddingTop(), + v.getPaddingRight(), + bottomPadding + insets.getSystemWindowInsetBottom()); + return insets.consumeSystemWindowInsets(); + }); } @Override diff --git a/src/com/android/launcher3/settings/SettingsActivity.java b/src/com/android/launcher3/settings/SettingsActivity.java index 05927ef167..d754ed2ff2 100644 --- a/src/com/android/launcher3/settings/SettingsActivity.java +++ b/src/com/android/launcher3/settings/SettingsActivity.java @@ -24,9 +24,11 @@ import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.text.TextUtils; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; +import androidx.core.view.WindowCompat; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; @@ -82,6 +84,7 @@ public class SettingsActivity extends FragmentActivity super.onCreate(savedInstanceState); setContentView(R.layout.settings_activity); setActionBar(findViewById(R.id.action_bar)); + WindowCompat.setDecorFitsSystemWindows(getWindow(), false); if (savedInstanceState == null) { Intent intent = getIntent(); @@ -198,6 +201,21 @@ public class SettingsActivity extends FragmentActivity } } + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + View listView = getListView(); + final int bottomPadding = listView.getPaddingBottom(); + listView.setOnApplyWindowInsetsListener((v, insets) -> { + v.setPadding( + v.getPaddingLeft(), + v.getPaddingTop(), + v.getPaddingRight(), + bottomPadding + insets.getSystemWindowInsetBottom()); + return insets.consumeSystemWindowInsets(); + }); + } + @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState);