关于支持嵌套NavHost的Jetpack Compose导航库的构想与技术问询
关于Jetpack Compose嵌套导航的实践与疑问
近期开发Android应用时,我发现默认Jetpack Compose导航库不支持NavHost嵌套。我的需求是让部分屏幕共享侧边导航栏,另一部分则是全屏无导航栏的页面,但现有方案需要繁琐的hack操作,还会破坏页面转场动画。
作为Jetpack Compose和Android开发新手,我做了一个支持嵌套导航的原型来学习实践——用PageSwitcher替代NavHost,所有PageSwitcher需要在PageNavigationRoot中使用,简化示例代码如下:
导航根布局示例
PageNavigationRoot( startingRoute = "Tabs/Tab1", transitionSpec = fullScreenTransition ) { PageSwitcher() { page("Tabs") { Column() { PageSwitcher() { page("Tab1") { // 页面内容 } page("Tab2") { // 页面内容 } } BottomNavigationBar() } } page("FullScreenPage") { // 页面内容 } } }
导航调用示例
val nav = rememberLocalPageNavigator() nav.navigateTo("Tabs/Tab2")
我想请教两个问题:
- 这种支持嵌套
NavHost风格的导航构想,是否已有成熟的官方或第三方实现? - 针对当前的原型,有哪些可以优化的改进建议?
目前受限于自身能力,暂时没法给这个原型添加主流导航库的更多功能。
内容的提问来源于stack exchange,提问作者Corey Cleasby
相关产品推荐
相关产品推荐

