fix same issue in the landscape mode

pull/54/head
Saeed Noshadi 3 years ago
parent 155b3c3f42
commit 4ef88536c0

@ -49,8 +49,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.navigation.NavDestination
import androidx.navigation.NavDestination.Companion.hierarchy
import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController import androidx.navigation.compose.rememberNavController
import com.google.samples.apps.nowinandroid.core.ui.component.NiaBackground import com.google.samples.apps.nowinandroid.core.ui.component.NiaBackground
@ -70,7 +68,6 @@ fun NiaApp(windowSizeClass: WindowSizeClass) {
} }
val navBackStackEntry by navController.currentBackStackEntryAsState() val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentDestination = navBackStackEntry?.destination
NiaBackground { NiaBackground {
Scaffold( Scaffold(
@ -97,7 +94,6 @@ fun NiaApp(windowSizeClass: WindowSizeClass) {
if (windowSizeClass.widthSizeClass != WindowWidthSizeClass.Compact) { if (windowSizeClass.widthSizeClass != WindowWidthSizeClass.Compact) {
NiANavRail( NiANavRail(
onNavigateToTopLevelDestination = niaTopLevelNavigation::navigateTo, onNavigateToTopLevelDestination = niaTopLevelNavigation::navigateTo,
currentDestination = currentDestination,
modifier = Modifier.safeDrawingPadding() modifier = Modifier.safeDrawingPadding()
) )
} }
@ -118,19 +114,23 @@ fun NiaApp(windowSizeClass: WindowSizeClass) {
@Composable @Composable
private fun NiANavRail( private fun NiANavRail(
onNavigateToTopLevelDestination: (TopLevelDestination) -> Unit, onNavigateToTopLevelDestination: (TopLevelDestination) -> Unit,
currentDestination: NavDestination?,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
NavigationRail(modifier = modifier) { NavigationRail(modifier = modifier) {
TOP_LEVEL_DESTINATIONS.forEach { destination -> var indexOfSelectedItem by rememberSaveable {
val selected = mutableStateOf(0)
currentDestination?.hierarchy?.any { it.route == destination.route } == true }
TOP_LEVEL_DESTINATIONS.forEachIndexed { itemIndex, destination ->
val isSelect = indexOfSelectedItem == itemIndex
NavigationRailItem( NavigationRailItem(
selected = selected, selected = isSelect,
onClick = { onNavigateToTopLevelDestination(destination) }, onClick = {
indexOfSelectedItem = itemIndex
onNavigateToTopLevelDestination(destination)
},
icon = { icon = {
Icon( Icon(
if (selected) destination.selectedIcon else destination.unselectedIcon, if (isSelect) destination.selectedIcon else destination.unselectedIcon,
contentDescription = null contentDescription = null
) )
}, },

Loading…
Cancel
Save