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
所谓缓存就是仍然使用原来的slice吗?slice不释放,用present就是缓存了。如果slice里需要加载数据,也可以将数据缓存。具体看你的业务了。slice是整个页面,如果要做tab的话,我更喜欢直接用布局。效果更好。
另外,如果问复杂的问题,可以提供完整的源代码。
你如果想跳转多次后,返回不再逐一返回,而是直接回到首页,那么在每次跳转前都可以用terminate()销毁当前的slice。类似下面这样:
看了你的代码,是这个界面的问题吗? 我看切换没问题啊,用present切换到不同的slice