在这个页面,重点有一个功能要实现,就是点击某个歌曲然后进入播放页。

分析:进入到播放页是一种跳转,而进入到播放页之前的发现页是一个子页。我们知道,要想控制跳转,需要有控制跳转的对象。但是之前的子页并没有这个对象,那怎么办呢?可以用AppStorageV2来存储控制跳转对象,这样在子页也能用它来控制跳转。为了增强状态管理框架对应用全局UI状态变量存储的能力,开发者可以使用AppStorageV2存储应用全局UI状态变量数据。

AppStorageV2的具体介绍可见文档:AppStorageV2: 应用全局UI状态存储-其他状态管理-状态管理(V2)-学习UI范式状态管理-UI开发 (ArkTS声明式开发范式)-ArkUI(方舟UI框架)-应用框架 - 华为HarmonyOS开发者

发现页面之前已经实现过主体,与之前不同的是,SongItemType这个类型会在播放页面也使用,因此把它放到ets/models/music.ets文件里方便之后调用。

播放页在Play.ets中实现,由于具有NavDestination组件,因此需要将其配置到路由表里。

将Index.ets里的pathStack控制跳转对象存储起来方便使用:

注意最后加了!符号,表示非空断言,告诉系统这个变量不可能为空。

那么其他页面怎么取?直接复制粘贴这句话到对应的页面文件即可。

之后就能跟之前一样用跳转方法来跳转到另一页面。