Show bottom-bar only when current-destination is TopLevel.

pull/27/head
Kasem SM 3 years ago
parent ef42543b32
commit a39005c36f

@ -22,6 +22,7 @@ import androidx.compose.material.icons.filled.Upcoming
import androidx.compose.material.icons.outlined.Grid3x3
import androidx.compose.material.icons.outlined.Upcoming
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.navigation.NavDestination
import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.NavHostController
import com.google.samples.apps.nowinandroid.feature.foryou.R.string.for_you
@ -78,3 +79,15 @@ val TOP_LEVEL_DESTINATIONS = listOf(
iconTextId = interests
)
)
/**
* @return true when the current destination is
* top level destination else false.
*/
fun NavDestination?.isTopLevelDestination(): Boolean {
return when (this?.route) {
ForYouDestination.route -> true
InterestsDestination.route -> true
else -> false
}
}

@ -59,6 +59,7 @@ import com.google.samples.apps.nowinandroid.navigation.NiaNavHost
import com.google.samples.apps.nowinandroid.navigation.NiaTopLevelNavigation
import com.google.samples.apps.nowinandroid.navigation.TOP_LEVEL_DESTINATIONS
import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination
import com.google.samples.apps.nowinandroid.navigation.isTopLevelDestination
@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class)
@Composable
@ -79,12 +80,14 @@ fun NiaApp(windowSizeClass: WindowSizeClass) {
contentColor = MaterialTheme.colorScheme.onBackground,
bottomBar = {
if (windowSizeClass.widthSizeClass == WindowWidthSizeClass.Compact) {
if (currentDestination.isTopLevelDestination()) {
NiABottomBar(
onNavigateToTopLevelDestination = niaTopLevelNavigation::navigateTo,
currentDestination = currentDestination
)
}
}
}
) { padding ->
Row(
Modifier

Loading…
Cancel
Save