mirror of
https://github.com/topjohnwu/Magisk.git
synced 2026-10-07 21:47:44 -04:00
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
This commit is contained in:
1 parent
c2f8da60f6
commit
482cde7aa4
1 file changed
+9
-8
@@ -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 ->
|
||||
|
||||
Reference in new issue
Block a user