22
33package ir.composenews.ui
44
5- import androidx.compose.foundation.layout.PaddingValues
6- import androidx.compose.foundation.layout.padding
5+ import androidx.compose.foundation.layout.WindowInsets
6+ import androidx.compose.foundation.layout.fillMaxSize
7+ import androidx.compose.foundation.layout.safeDrawing
8+ import androidx.compose.foundation.layout.windowInsetsPadding
79import androidx.compose.material.icons.Icons
810import androidx.compose.material.icons.filled.Favorite
911import androidx.compose.material.icons.filled.Home
1012import androidx.compose.material3.Icon
11- import androidx.compose.material3.Scaffold
1213import androidx.compose.material3.Text
1314import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
1415import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
@@ -34,23 +35,22 @@ fun ComposeNewsApp() {
3435 val items = rememberNavigationItems()
3536 var currentRoute by remember { mutableStateOf(Destinations .MarketListScreen .route) }
3637
37- Scaffold { paddingValues ->
38- NavigationSuiteScaffold (
39- navigationSuiteItems = {
40- items.forEach { item ->
41- item(
42- selected = item.route == currentRoute,
43- onClick = { currentRoute = item.route },
44- icon = { Icon (imageVector = item.icon, contentDescription = item.name) },
45- label = { Text (text = item.name) },
46- )
47- }
48- },
49- layoutType = NavigationSuiteScaffoldDefaults .calculateFromAdaptiveInfo(currentWindowAdaptiveInfo()),
50- ) {
51- val navigator = rememberListDetailPaneScaffoldNavigator<Any >()
52- NavigationContent (currentRoute, paddingValues, navigator)
53- }
38+ NavigationSuiteScaffold (
39+ navigationSuiteItems = {
40+ items.forEach { item ->
41+ item(
42+ selected = item.route == currentRoute,
43+ onClick = { currentRoute = item.route },
44+ icon = { Icon (imageVector = item.icon, contentDescription = item.name) },
45+ label = { Text (text = item.name) },
46+ )
47+ }
48+ },
49+ layoutType = NavigationSuiteScaffoldDefaults .calculateFromAdaptiveInfo(currentWindowAdaptiveInfo()),
50+ containerColor = androidx.compose.material3.MaterialTheme .colorScheme.background,
51+ ) {
52+ val navigator = rememberListDetailPaneScaffoldNavigator<Any >()
53+ NavigationContent (currentRoute, navigator)
5454 }
5555}
5656
@@ -75,16 +75,19 @@ private fun rememberNavigationItems(): ImmutableList<BottomNavItem> =
7575@Composable
7676private fun NavigationContent (
7777 currentRoute : String ,
78- paddingValues : PaddingValues ,
7978 navigator : ThreePaneScaffoldNavigator <Any >,
8079) {
80+ val modifier = Modifier
81+ .fillMaxSize()
82+ .windowInsetsPadding(WindowInsets .safeDrawing)
83+
8184 when (currentRoute) {
8285 Destinations .MarketListScreen .route -> {
83- ListWithDetailScreen (Modifier .padding(paddingValues) , navigator, showFavorite = false )
86+ ListWithDetailScreen (modifier , navigator, showFavorite = false )
8487 }
8588
8689 Destinations .FavoriteMarketScreen .route -> {
87- ListWithDetailScreen (Modifier .padding(paddingValues) , navigator, showFavorite = true )
90+ ListWithDetailScreen (modifier , navigator, showFavorite = true )
8891 }
8992 }
9093}
0 commit comments