如何在Jetpack Compose中更改topBar对应的屏幕
Posted
技术标签:
【中文标题】如何在Jetpack Compose中更改topBar对应的屏幕【英文标题】:How to change topBar corresponding screen in Jetpack Compose 【发布时间】:2021-10-27 05:39:47 【问题描述】:我有一个这样的脚手架:
Scaffold(
topBar =
TopBar(...)
,
bottomBar =
BottomNavigationBar(...)
)
NavHost(...)
当我导航到另一个屏幕时更改 TopBar 的最佳方法是什么?
【问题讨论】:
【参考方案1】:有两种可能的方法:
观察currentScreen
并在topBar
中使用when
并据此更改
将topbar
放在它所属的屏幕内。
我更喜欢第二个,因为它不相互共享,没有理由使用丑陋的when
声明。
【讨论】:
对于(2),我应该在每个屏幕内输入Scaffold()
吗?或者,我可以使用单个Scaffold()
,但创建一个可组合函数的可变状态(顶栏的内容),将该状态传递给每个屏幕并设置它?
@xierch 是的,将Scaffold()
放在每个屏幕内。你刚才说的是(1)currentScreen
,即mutableState
,带有一个Scaffold()
以上是关于如何在Jetpack Compose中更改topBar对应的屏幕的主要内容,如果未能解决你的问题,请参考以下文章
Jetpack Compose,设置新数据时如何重置 LazyColumn 位置?
Jetpack Compose:如何以编程方式将主题从浅色模式更改为深色模式 onClick
展开时更改 ModalDrawer 的大小,Jetpack Compose