HarmonyOS鸿蒙Next中关于Navigation路由跳转的问题
HarmonyOS鸿蒙Next中关于Navigation路由跳转的问题
就是我想知道,目前官方推荐的Navigation路由跳转模式,以及页面从属布局,是怎样的一个布置。
我对开发文档和社区的提问看了看,我自己画了个图不知道对不对
现在单体应用开发的话,路由从属关系是不是下图这样的?
之前有开发过安卓,一个Activity就是一个页面,Activity之间进行跳转,这个很好理解
但是鸿蒙的这个页面跳转就很迷。
下面这个图放到安卓里面,就是全局只有一个Activity,其他所有页面通过Fragment进行跳转。我不知道这样理解对不对。
对应到项目工程文件布局如下
这样理解对不对呢?
更多关于HarmonyOS鸿蒙Next中关于Navigation路由跳转的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
可以这样理解,但是启动页和登录页 等进入首页之前的页面 可以不在首页路由里面,可以使用 router ,方便跳转,这样 navigation 返回的时候 不会有问题。
更多关于HarmonyOS鸿蒙Next中关于Navigation路由跳转的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
明白,我看官方的一些demo也是这么操作的。但是我看官方已经不推荐使用router。那既然不推荐,并在未来版本不再维护。然后官方在demo中还使用。就有点迷。
那假设我不用router。用navigation也是可以实现的吧?我把navigation设为一个无内容的空组件,
你可以试试,多测测,官方使用 router
也是有原因的,各种打开 app
的场景,navigation
不好实现,
鸿蒙的navigation和jackpack compose的navigation不一样。Android compose的NavHost可以设置一个startDestination,就是首次显示NavHost时默认显示的目标页面。鸿蒙navigation导航页它是一个根页面,它有自己的内容,点击某个地方再进入到对应的NavDestination。
把下面html内容转换成Markdown格式,要求:
- 转换的时候需要去掉复制和深色代码主题
- 输出的内容不显示“基本信息”
- html代码中有图片需要转换成markdown格式
- html代码中没有图片请不要加上图片
- html中img标签的地址为空的话不输出, 不转换
- 输出内容的时候不需要解释,不需要建议
- 只需要输出转换完毕的Markdown文档,不需要输出其他内容
- 内容中没有图片或者图片为空的话不要加图片
- 不要在内容中加https://example.com/image.jpg这样的图片
在HarmonyOS鸿蒙Next中,Navigation组件用于实现页面之间的路由跳转。通过NavDestination
和NavController
,开发者可以定义页面路由并控制跳转逻辑。NavController
提供了navigate
方法,支持传递参数和动画效果。路由配置通常在navigation.xml
中定义,页面跳转时可通过NavController
的navigate
方法指定目标页面ID。鸿蒙Next的路由机制支持多级页面栈管理,确保页面跳转的流畅性和一致性。
你的理解基本正确。在HarmonyOS Next中,Navigation确实采用了类似单Activity多Fragment的架构思想,但具体实现有所不同。
- 页面结构:
- 一个Ability(对应安卓的Activity)作为容器
- 通过Navigation组件管理多个Page(对应安卓的Fragment)
- 每个Page可以有自己的生命周期
- 路由跳转:
- 推荐使用Router模块进行页面导航
- 支持标准路由(
router.pushUrl
)和命名路由 - 页面栈管理更加灵活,支持多种导航模式
- 项目结构:
- 你的工程文件布局合理
- 每个Page建议放在独立目录
- 通过统一的router配置文件管理路由
与安卓的主要区别:
- Navigation组件提供了更丰富的转场动画支持
- 页面生命周期管理更精细化
- 支持动态加载和卸载Page
你的示意图基本反映了HarmonyOS Next的推荐架构,这种设计有利于实现更好的性能和多设备适配。