diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt
index 1705a72e8e..e403aa6d7a 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt
@@ -8,20 +8,24 @@ import android.content.Intent
 import android.content.IntentFilter
 import android.os.Bundle
 import android.view.Menu
+import android.view.View
+import android.widget.FrameLayout
 import android.widget.Toast
 import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowCompat
+import androidx.core.view.WindowInsetsCompat
+import androidx.core.view.updatePadding
 import androidx.localbroadcastmanager.content.LocalBroadcastManager
+import com.google.android.material.appbar.AppBarLayout
 import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import com.google.android.material.progressindicator.LinearProgressIndicator
 import org.yuzu.yuzu_emu.NativeLibrary
 import org.yuzu.yuzu_emu.R
 import org.yuzu.yuzu_emu.features.settings.model.Settings
 import org.yuzu.yuzu_emu.features.settings.ui.SettingsFragment.Companion.newInstance
-import org.yuzu.yuzu_emu.utils.DirectoryInitialization
-import org.yuzu.yuzu_emu.utils.DirectoryStateReceiver
-import org.yuzu.yuzu_emu.utils.EmulationMenuSettings
-import org.yuzu.yuzu_emu.utils.ThemeHelper
+import org.yuzu.yuzu_emu.utils.*
 
 class SettingsActivity : AppCompatActivity(), SettingsActivityView {
     private val presenter = SettingsActivityPresenter(this)
@@ -32,6 +36,9 @@ class SettingsActivity : AppCompatActivity(), SettingsActivityView {
 
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_settings)
+
+        WindowCompat.setDecorFitsSystemWindows(window, false)
+
         val launcher = intent
         val gameID = launcher.getStringExtra(ARG_GAME_ID)
         val menuTag = launcher.getStringExtra(ARG_MENU_TAG)
@@ -40,6 +47,8 @@ class SettingsActivity : AppCompatActivity(), SettingsActivityView {
         // Show "Back" button in the action bar for navigation
         setSupportActionBar(findViewById(R.id.toolbar_settings))
         supportActionBar!!.setDisplayHomeAsUpEnabled(true)
+
+        setInsets()
     }
 
     override fun onSupportNavigateUp(): Boolean {
@@ -185,6 +194,17 @@ class SettingsActivity : AppCompatActivity(), SettingsActivityView {
     private val fragment: SettingsFragment?
         get() = supportFragmentManager.findFragmentByTag(FRAGMENT_TAG) as SettingsFragment?
 
+    private fun setInsets() {
+        val appBar = findViewById<AppBarLayout>(R.id.appbar_settings)
+        val frame = findViewById<FrameLayout>(R.id.frame_content)
+        ViewCompat.setOnApplyWindowInsetsListener(frame) { view: View, windowInsets: WindowInsetsCompat ->
+            val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+            view.updatePadding(left = insets.left, right = insets.right)
+            InsetsHelper.insetAppBar(insets, appBar)
+            windowInsets
+        }
+    }
+
     companion object {
         private const val ARG_MENU_TAG = "menu_tag"
         private const val ARG_GAME_ID = "game_id"
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
index fe04c9651a..bef5b97051 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
@@ -8,6 +8,9 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import androidx.core.view.updatePadding
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentActivity
 import androidx.recyclerview.widget.LinearLayoutManager
@@ -25,6 +28,8 @@ class SettingsFragment : Fragment(), SettingsFragmentView {
     private var activityView: SettingsActivityView? = null
     private var adapter: SettingsAdapter? = null
 
+    private lateinit var recyclerView: RecyclerView
+
     override fun onAttach(context: Context) {
         super.onAttach(context)
         activityView = context as SettingsActivityView
@@ -50,7 +55,7 @@ class SettingsFragment : Fragment(), SettingsFragmentView {
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         val manager = LinearLayoutManager(activity)
-        val recyclerView = view.findViewById<RecyclerView>(R.id.list_settings)
+        recyclerView = view.findViewById(R.id.list_settings)
         recyclerView.adapter = adapter
         recyclerView.layoutManager = manager
         val dividerDecoration = MaterialDividerItemDecoration(requireContext(), LinearLayoutManager.VERTICAL)
@@ -58,6 +63,8 @@ class SettingsFragment : Fragment(), SettingsFragmentView {
         recyclerView.addItemDecoration(dividerDecoration)
         val activity = activity as SettingsActivityView?
         presenter.onViewCreated(activity!!.settings)
+
+        setInsets()
     }
 
     override fun onDetach() {
@@ -106,6 +113,14 @@ class SettingsFragment : Fragment(), SettingsFragmentView {
         activityView!!.onSettingChanged()
     }
 
+    private fun setInsets() {
+        ViewCompat.setOnApplyWindowInsetsListener(recyclerView) { view: View, windowInsets: WindowInsetsCompat ->
+            val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+            view.updatePadding(bottom = insets.bottom)
+            windowInsets
+        }
+    }
+
     companion object {
         private const val ARGUMENT_MENU_TAG = "menu_tag"
         private const val ARGUMENT_GAME_ID = "game_id"
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
index 2664038852..ba60a26e8d 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
@@ -9,9 +9,17 @@ import android.net.Uri
 import android.os.Bundle
 import android.view.Menu
 import android.view.MenuItem
+import android.view.View
+import android.widget.FrameLayout
 import android.widget.Toast
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.widget.Toolbar
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowCompat
+import androidx.core.view.WindowInsetsCompat
+import androidx.core.view.updatePadding
+import com.google.android.material.appbar.AppBarLayout
+import com.google.android.material.color.MaterialColors
 import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import org.yuzu.yuzu_emu.NativeLibrary
 import org.yuzu.yuzu_emu.R
@@ -31,6 +39,9 @@ class MainActivity : AppCompatActivity(), MainView {
 
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
+
+        WindowCompat.setDecorFitsSystemWindows(window, false)
+
         findViews()
         setSupportActionBar(toolbar)
         presenter.onCreate()
@@ -50,6 +61,8 @@ class MainActivity : AppCompatActivity(), MainView {
 
         // Dismiss previous notifications (should not happen unless a crash occurred)
         EmulationActivity.tryDismissRunningNotification(this)
+
+        setInsets()
     }
 
     override fun onSaveInstanceState(outState: Bundle) {
@@ -230,4 +243,15 @@ class MainActivity : AppCompatActivity(), MainView {
         EmulationActivity.tryDismissRunningNotification(this)
         super.onDestroy()
     }
+
+    private fun setInsets() {
+        val appBar = findViewById<AppBarLayout>(R.id.appbar_main)
+        val frame = findViewById<FrameLayout>(R.id.games_platform_frame)
+        ViewCompat.setOnApplyWindowInsetsListener(frame) { view: View, windowInsets: WindowInsetsCompat ->
+            val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+            view.updatePadding(left = insets.left, right = insets.right)
+            InsetsHelper.insetAppBar(insets, appBar)
+            windowInsets
+        }
+    }
 }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/platform/PlatformGamesFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/platform/PlatformGamesFragment.kt
index efd77ea7ea..42b61a81a4 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/platform/PlatformGamesFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/platform/PlatformGamesFragment.kt
@@ -10,6 +10,9 @@ import android.view.View
 import android.view.ViewGroup
 import android.view.ViewTreeObserver.OnGlobalLayoutListener
 import android.widget.TextView
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import androidx.core.view.updatePadding
 import androidx.fragment.app.Fragment
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.RecyclerView
@@ -17,6 +20,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
 import org.yuzu.yuzu_emu.R
 import org.yuzu.yuzu_emu.YuzuApplication
 import org.yuzu.yuzu_emu.adapters.GameAdapter
+import org.yuzu.yuzu_emu.utils.InsetsHelper
 
 class PlatformGamesFragment : Fragment(), PlatformGamesView {
     private val presenter = PlatformGamesPresenter(this)
@@ -65,6 +69,8 @@ class PlatformGamesFragment : Fragment(), PlatformGamesView {
             refresh()
             pullToRefresh.isRefreshing = false
         }
+
+        setInsets()
     }
 
     override fun refresh() {
@@ -91,6 +97,14 @@ class PlatformGamesFragment : Fragment(), PlatformGamesView {
         textView = root.findViewById(R.id.gamelist_empty_text)
     }
 
+    private fun setInsets() {
+        ViewCompat.setOnApplyWindowInsetsListener(recyclerView) { view: View, windowInsets: WindowInsetsCompat ->
+            val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+            view.updatePadding(bottom = insets.bottom)
+            windowInsets
+        }
+    }
+
     companion object {
         const val TAG = "PlatformGamesFragment"
     }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InsetsHelper.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InsetsHelper.kt
index 3f9acc5b06..2eae77a1dd 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InsetsHelper.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InsetsHelper.kt
@@ -1,12 +1,22 @@
 package org.yuzu.yuzu_emu.utils
 
 import android.content.Context
+import android.view.ViewGroup.MarginLayoutParams
+import androidx.core.graphics.Insets
+import com.google.android.material.appbar.AppBarLayout
 
 object InsetsHelper {
     const val THREE_BUTTON_NAVIGATION = 0
     const val TWO_BUTTON_NAVIGATION = 1
     const val GESTURE_NAVIGATION = 2
 
+    fun insetAppBar(insets: Insets, appBarLayout: AppBarLayout) {
+        val mlpAppBar = appBarLayout.layoutParams as MarginLayoutParams
+        mlpAppBar.leftMargin = insets.left
+        mlpAppBar.rightMargin = insets.right
+        appBarLayout.layoutParams = mlpAppBar
+    }
+
     fun getSystemGestureType(context: Context): Int {
         val resources = context.resources
         val resourceId =
diff --git a/src/android/app/src/main/res/layout/activity_main.xml b/src/android/app/src/main/res/layout/activity_main.xml
index 34abf955d0..059aaa9b4b 100644
--- a/src/android/app/src/main/res/layout/activity_main.xml
+++ b/src/android/app/src/main/res/layout/activity_main.xml
@@ -9,6 +9,7 @@
         android:id="@+id/appbar_main"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:fitsSystemWindows="true"
         app:liftOnScrollTargetViewId="@id/grid_games">
 
         <androidx.appcompat.widget.Toolbar
diff --git a/src/android/app/src/main/res/layout/activity_settings.xml b/src/android/app/src/main/res/layout/activity_settings.xml
index 449deab080..dc23200eae 100644
--- a/src/android/app/src/main/res/layout/activity_settings.xml
+++ b/src/android/app/src/main/res/layout/activity_settings.xml
@@ -9,7 +9,8 @@
     <com.google.android.material.appbar.AppBarLayout
         android:id="@+id/appbar_settings"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content">
+        android:layout_height="wrap_content"
+        android:fitsSystemWindows="true">
 
         <androidx.appcompat.widget.Toolbar
             android:id="@+id/toolbar_settings"
diff --git a/src/android/app/src/main/res/layout/fragment_grid.xml b/src/android/app/src/main/res/layout/fragment_grid.xml
index 01399e18d8..bfb670b6db 100644
--- a/src/android/app/src/main/res/layout/fragment_grid.xml
+++ b/src/android/app/src/main/res/layout/fragment_grid.xml
@@ -1,13 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-             xmlns:tools="http://schemas.android.com/tools"
-             android:layout_width="match_parent"
-             android:layout_height="match_parent">
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
 
     <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
         android:id="@+id/swipe_refresh"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content">
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
 
         <RelativeLayout
             android:layout_width="match_parent"
@@ -17,18 +18,20 @@
                 android:id="@+id/gamelist_empty_text"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
+                android:gravity="center"
                 android:text="@string/empty_gamelist"
-                android:visibility="gone"
                 android:textSize="18sp"
-                android:gravity="center" />
+                android:visibility="gone" />
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/grid_games"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:clipToPadding="false"
+                tools:listitem="@layout/card_game" />
 
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/grid_games"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:clipToPadding="false"
-            tools:listitem="@layout/card_game" />
         </RelativeLayout>
 
     </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+
 </FrameLayout>
diff --git a/src/android/app/src/main/res/layout/fragment_settings.xml b/src/android/app/src/main/res/layout/fragment_settings.xml
index 13780927ec..6feb092ff2 100644
--- a/src/android/app/src/main/res/layout/fragment_settings.xml
+++ b/src/android/app/src/main/res/layout/fragment_settings.xml
@@ -8,6 +8,7 @@
         android:id="@+id/list_settings"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="?attr/colorSurface" />
+        android:background="?attr/colorSurface"
+        android:clipToPadding="false" />
 
 </org.yuzu.yuzu_emu.features.settings.ui.SettingsFrameLayout>