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

老师您好,描述下我的情况,就是类似于退栈过程出现的问题。打开一个PageAbility页面,里面通过slice的切换来显示不同的界面样式。PageAbility默认加载PageHomeAbilitySlice,如下:

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

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

PageMineAbilitySlice>PageHomeAbilitySlice;

点返回,依次: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
1549浏览
已于2020-11-19 10:45:31修改
收藏 0
回答 4
已解决
回答 4
按赞同
/
按时间
androidguy
2

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

分享
微博
QQ
微信
回复4
2020-11-12 19:02:41
androidguy
2

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

分享
微博
QQ
微信
回复1
2020-11-12 19:04:17
小囧宝宝
1

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

分享
微博
QQ
微信
回复1
5天前
androidguy

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

分享
微博
QQ
微信
回复
5天前