如何在Jetpack Compose的双窗格布局中实现嵌套导航?
Jetpack Compose 多屏适配导航问题
我正在使用Jetpack Compose开发一款适配不同屏幕尺寸的类设置界面应用,应用的核心导航结构如下:
- 包含一个NavGraph,其顶层屏幕带有LazyColumn组件
- 点击LazyColumn中的条目,会导航至NavGraph内的不同目标页面;这些目标页面本身还可以包含嵌套在顶层导航组件中的多屏导航图
小屏设备的导航实现
在小屏设备上,我使用NavHost实现典型的移动端嵌套导航:
大屏设备的导航需求
在大屏设备上,我希望采用双窗格布局:
- 左侧窗格放置LazyColumn
- 选中的目标页面显示在右侧窗格;目标页面跳转的其他页面,同样在双窗格的右侧窗格打开

尝试方案的问题
最初我尝试为不同屏幕尺寸使用两个独立的NavHost:
- 小屏设备使用包含顶层屏幕的
NavHost - 大屏设备将不含顶层屏幕的
NavHost嵌入右侧窗格
但这种方式需要管理和同步两个宿主的页面状态,操作过于复杂且不切实际
内容的提问来源于stack exchange,提问作者Rivan
相关产品推荐
相关产品推荐

