HarmonyOS 鸿蒙多模块Tabbar问题,大家探讨一下
HarmonyOS 鸿蒙多模块Tabbar问题,大家探讨一下
目前鸿蒙尚未推出底部导航栏的标签,也有楼主基于现有的api来自定义底部导航栏。我在这里提出一个问题:
如何实现多Page Ability的一个底部导航栏?
为什么我会有这种想法:在实际开发中,我们可能想让tabbar中的页面进行跨设备迁移。因此会创建一个Page Ability模块,来编写功能。文档中,页面路由是在同page下,换句话说是同一个Page Ability模块下的页面,可以通过页面路由的方式,进行页面的跳转。那么,当我们tabbar中,一个或多个页面是来自不同的模块,这个tabbar我们应该如何去开发呢?
最近也在做相关代码的编写,因为比较喜欢全栈,前端选择了JsUI。
这里提出几个方案:
-
先开发出tabbar组件代码,在对应的ability页面顶部引入该组件。组件代码需要实现在点击时,通过ability方式调用JAVA PA【https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-js-fa-call-pa-0000001050435961】,在java代码中实现跳转到另外一个ability页面【https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fa-calls-pa-overview-0000000000617989】。
-
我们将tabbar的所有页面都写在一个page下面,这样就可以使用页面路由功能进行页面的切换。此时是没有多模块的,因此我们需要新建几个Page Ability,将页面代码粘贴过去。这样可以让其他设备调用到相同【长相相同】的页面,从而让用户无感。
方案问题:
-
由于InternalAbility不是继承的Ability类,因此不能使用相关代码。 Ability方式去调用,如果存在延迟,底部导航栏可能在页面跳转的过程中,无法显示。
-
代码冗余,当然也可以提炼出组件,通过调用组件展示页面。
大家都来讨论一下,发表一下自己的观点。
更多关于HarmonyOS 鸿蒙多模块Tabbar问题,大家探讨一下的实战教程也可以访问 https://www.itying.com/category-93-b0.html
老哥,ets有解决方案吗
更多关于HarmonyOS 鸿蒙多模块Tabbar问题,大家探讨一下的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
为啥不使用 RadioContainer和PageSlider来实现
针对“HarmonyOS 鸿蒙多模块Tabbar问题”,以下是一些直接相关的专业回答:
在HarmonyOS中,实现多模块Tabbar通常涉及到应用架构的设计,尤其是模块间的通信和界面切换。多模块架构下,每个模块可能独立开发、独立打包,但共享同一个Tabbar时,就需要协调各个模块的生命周期和视图展示。
首先,确保Tabbar组件是在一个公共的基础模块或者框架模块中实现,该模块负责Tabbar的UI展示和点击事件处理。然后,各个业务模块在需要展示时,通过特定的接口或事件通知基础模块进行Tabbar的切换。
实现过程中,可能遇到的问题包括:
- 模块间通信延迟:确保通信机制高效可靠,避免界面切换卡顿。
- 生命周期管理:处理好各个模块的生命周期,确保在Tabbar切换时,正确的模块被加载和卸载。
- 状态同步:如果Tabbar的状态需要在多个模块间同步,需要设计合理的状态管理机制。
解决这些问题,可能需要对HarmonyOS的模块通信机制、生命周期管理以及状态管理有深入的理解。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。