如何在jetpack compose中定义不同的屏幕
Posted
技术标签:
【中文标题】如何在jetpack compose中定义不同的屏幕【英文标题】:How to define different screens in jetpack compose 【发布时间】:2021-09-02 03:26:59 【问题描述】:我刚刚开始熟悉 Jetpack Compose,据我了解,NavHost 就像 NavHostFragment,它承载不同的可组合项而不是片段。
我很难理解的是,如果我定义一个带有脚手架和 NavHost 的屏幕作为其内容,例如:
setContent
Scaffold(...)
NavHost(...)...
这使得底部导航栏和脚手架中定义的所有内容都出现在 NavHost 托管的每个可组合项中。如果我想为不同的屏幕设置不同的浮动操作按钮怎么办?我是否必须为这些屏幕启动一个新活动并在那里定义不同的脚手架?
【问题讨论】:
【参考方案1】:您实际上可以引用 navHostController。您可以通过每次导航时更新变量来跟踪当前屏幕,或者只使用 navController.getCurrentBackStackEntry?.destination 来获取当前屏幕。在您的浮动操作按钮中使用它来相应地设置它
【讨论】:
我明白了..所以我只是获取当前路线并根据我所在的屏幕设置FAB内容。谢谢! 很高兴您的问题解决了。您应该将我的答案标记为解决方案,以便其他人知道该问题已被回答,并且不要多次回答,谢谢以上是关于如何在jetpack compose中定义不同的屏幕的主要内容,如果未能解决你的问题,请参考以下文章