From 482cde7aa42fa19ab2bd477db2e7da007029f3d3 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Thu, 3 Sep 2026 01:43:17 -0700 Subject: [PATCH] app: use ShortNavigationBar and fix insets - Replace Material 3 NavigationBar with ShortNavigationBar and ShortNavigationBarItem for a more compact bottom bar. - Set contentWindowInsets to zero on the root Scaffold so status bar insets are passed down to child screens' TopAppBars. - Consume innerPadding on HorizontalPager to prevent nested Scaffolds from duplicating bottom system navigation insets. Assisted-by: Gemini 3.8 Flash --- .../java/com/topjohnwu/magisk/ui/MainScreen.kt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/apk/src/main/java/com/topjohnwu/magisk/ui/MainScreen.kt b/app/apk/src/main/java/com/topjohnwu/magisk/ui/MainScreen.kt index ef2ccf676..731c8762d 100644 --- a/app/apk/src/main/java/com/topjohnwu/magisk/ui/MainScreen.kt +++ b/app/apk/src/main/java/com/topjohnwu/magisk/ui/MainScreen.kt @@ -2,15 +2,16 @@ package com.topjohnwu.magisk.ui import androidx.activity.ComponentActivity import androidx.activity.compose.LocalActivity +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.NavigationBar -import androidx.compose.material3.NavigationBarItem import androidx.compose.material3.Scaffold +import androidx.compose.material3.ShortNavigationBar +import androidx.compose.material3.ShortNavigationBarItem import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -72,12 +73,11 @@ fun MainScreen( Scaffold( modifier = modifier.fillMaxSize(), + contentWindowInsets = WindowInsets(0, 0, 0, 0), bottomBar = { - NavigationBar( - containerColor = MaterialTheme.colorScheme.surfaceContainer, - ) { + ShortNavigationBar { visibleTabs.forEachIndexed { index, tab -> - NavigationBarItem( + ShortNavigationBarItem( selected = pagerState.currentPage == index, onClick = { scope.launch { pagerState.animateScrollToPage(index) } }, icon = { @@ -96,7 +96,8 @@ fun MainScreen( state = pagerState, modifier = Modifier .fillMaxSize() - .padding(bottom = innerPadding.calculateBottomPadding()), + .padding(innerPadding) + .consumeWindowInsets(innerPadding), beyondViewportPageCount = visibleTabs.size - 1, userScrollEnabled = true, ) { page ->