导航到可组合时,我们如何隐藏BottomAppBar(带导航包括)?

时间:2021-05-17 19:05:25

标签: android kotlin navigation android-jetpack-compose

我有问题。

问题是当我导航到“添加问题”屏幕时,我不知道如何隐藏底部应用栏。

我需要你的帮助。

这是带有底部应用栏的 MyScreen

@Composable
fun Navigation() {
    val navController = rememberNavController()
    val items = listOf(Screen.Home, Screen.Search, Screen.Notifications, Screen.Profil)

    Scaffold(
        bottomBar = {
            bottomAppNavigation(navController = navController, items)

        }
    ) {
        Box(modifier = Modifier.padding(it)) {
            ScreenController(navController = navController)
        }

    }
}

这是我的带有导航主机的控制器

@ExperimentalComposeUiApi
@Composable
fun ScreenController(navController: NavHostController) {
    NavHost(navController = navController, startDestination = Screen.Home.route) {
        composable(Screen.Home.route) {
            HomeScreen(navController)
        }
        composable(Screen.Search.route) {
            SearchScreen(navController, it)
        }
        composable(Screen.Notifications.route) {

        }
        composable(Screen.Profil.route) {
            user_profil()
        }
        composable("Ask_question") {
            AskScreen(navController)
        }
    }
}

我认为的问题是因为这就像活动和片段,我有一个可组合屏幕所在的盒子,我所有的页面都在他里面。

1 个答案:

答案 0 :(得分:2)

如果你想隐藏 BottomBar 就不要输出它。

类似于:

Scaffold(
    bottomBar = {
        if (currentRoute != "xxxx") {
            BottomAppBar() {
               //....
            }
        }
    },

currentRoute 在哪里(至少使用 Navigation Compose 2.4.0-alpha01):

val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry.destination.route