PageAbility配合多个Slice实现页面间切换

老师您好,描述下我的情况,就是类似于退栈过程出现的问题。打开一个PageAbility页面,里面通过slice的切换来显示不同的界面样式。PageAbility默认加载PageHomeAbilitySlice,如下:PageAbility配合多个Slice实现页面间切换-开源基础软件社区

接着依次点击下面按钮(调用stop结束当前slice):HOME>SINITEK>MINE>HOME>SINITEK>MINE>HOME;

会相应的加载:PageHomeAbilitySlice>PageSinitekAbilitySlice>PageMineAbilitySlice>PageHomeAbilitySlice>PageSinitekAbilitySlice>

PageMineAbilitySlice>PageHomeAbilitySlice;

PageAbility配合多个Slice实现页面间切换-开源基础软件社区PageAbility配合多个Slice实现页面间切换-开源基础软件社区PageAbility配合多个Slice实现页面间切换-开源基础软件社区

点返回,依次:PageHomeAbilitySlice>PageMineAbilitySlice>PageSinitekAbilitySlice>PageHomeAbilitySlice>PageMineAbilitySlice>

PageSinitekAbilitySlice>PageHomeAbilitySlice。

主要想实现在功能就是:在当前Ability下,通过下方在按钮,来切换不同在tab页面,每个tab在页面都会有缓存机制!而且返回的时候也不会因为多次打开,而导致返回的时候多次显示。

总结:按理来说,点一次返回会回到最开始的主页面吧?就算不是直接返回到最开始页面,也不该是打开几次slice,就返回几次吧(每次切换下一个slice时,调用了当前slice的stop)?

 

代码地址:https://github.com/BuilderPattern/HarmonyOSSinitek.git

PageAbility
Slice
2020-11-12 18:28:18
浏览
已于2020-11-19 10:45:31修改
收藏 0
回答 4
已解决
回答 4
按赞同
/
按时间
蒙娜丽宁
3

所谓缓存就是仍然使用原来的slice吗?slice不释放,用present就是缓存了。如果slice里需要加载数据,也可以将数据缓存。具体看你的业务了。slice是整个页面,如果要做tab的话,我更喜欢直接用布局。效果更好。

分享
微博
QQ
微信
回复4
2020-11-12 19:02:41
小囧宝宝
3

你如果想跳转多次后,返回不再逐一返回,而是直接回到首页,那么在每次跳转前都可以用terminate()销毁当前的slice。类似下面这样:

分享
微博
QQ
微信
回复1
2020-11-19 20:38:58
蒙娜丽宁
2

另外,如果问复杂的问题,可以提供完整的源代码。

分享
微博
QQ
微信
回复1
2020-11-12 19:04:17
蒙娜丽宁

看了你的代码,是这个界面的问题吗?  我看切换没问题啊,用present切换到不同的slice

分享
微博
QQ
微信
回复8
2020-11-19 10:20:01
相关问题
在一个页面怎么实现多个AbilitySlice?
8851浏览 • 5回复 待解决
liteos-m怎么实现进程的互斥?
1569浏览 • 1回复 已解决
鸿蒙tablist 如何通过滑动切换页面
1706浏览 • 1回复 待解决
js Fa如何实现线程通信?
1635浏览 • 1回复 待解决
多个设备与智慧生活app绑定问题
6262浏览 • 2回复 待解决
本地service与本地应用如何传递消息
2360浏览 • 1回复 待解决
关于切换深色模式应用自动重启应用
2077浏览 • 2回复 待解决
关于鸿蒙和uboot的一些问题
5172浏览 • 2回复 待解决
Visual Studio Code切换开发板失败
5897浏览 • 4回复 待解决
鸿蒙横竖屏切换监听,需要这个功能
6716浏览 • 3回复 已解决