【问题标题】:How to change topBar corresponding screen in Jetpack Compose如何在Jetpack Compose中更改topBar对应的屏幕
【发布时间】:2021-10-27 05:39:47
【问题描述】:

我有一个这样的脚手架:

Scaffold(
   topBar = {
       TopBar(...)
   },
   bottomBar = {
       BottomNavigationBar(...)
   }
) {
    NavHost(...)
}

当我导航到另一个屏幕时更改 TopBar 的最佳方法是什么?

【问题讨论】:

    标签: android android-navigation appbar android-jetpack-navigation scaffold


    【解决方案1】:

    有两种可能的方法:

    1. 观察currentScreen 并在topBar 中使用when 并据此更改

    2. topbar放在它所属的屏幕内。

    我更喜欢第二个,因为它不相互共享,没有理由使用丑陋的when 声明。

    【讨论】:

    • 对于(2),我应该在每个屏幕内输入Scaffold() 吗?或者,我可以使用单个Scaffold(),但创建一个可组合函数的可变状态(顶栏的内容),将该状态传递给每个屏幕并设置它?
    • @xierch 是的,将Scaffold() 放在每个屏幕内。你刚才说的是(1)currentScreen ,即mutableState,带有一个Scaffold()
    猜你喜欢
    • 2021-09-02
    • 2022-11-01
    • 2023-03-28
    • 2023-03-07
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 2022-10-23
    • 2022-10-25
    相关资源
    最近更新 更多