【每日学点 HarmonyOS Next 知识】tab 拦截、组件方法做参数、自定义组件链式调用、多次观察者监听、横竖屏切换

1、HarmonyOS Tab 组件里的 tabBar 点击如何拦截,根据情况判断是否允许切换 tab?
Tab 组件里的 tabBar 点击如何拦截,根据情况判断是否允许切换 tab
暂时没有 tabBar 点击拦截功能实现,可以使用 TabsController 自定义页签以及并在其中添加事件进行逻辑判断,参考 demo 如下:
2、HarmonyOS @Builder 装饰的方法可以作为参数传递吗?
目前不支持这种传参规则。请参考如自定义构建函数的参数传递:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-builder-V5
ArkUI 提供了一种轻量的 UI 元素复用机制 @Builder,其内部 UI 结构固定,仅与使用方进行数据传递,开发者可以将重复使用的 UI 元素抽象成一个方法,在 build 方法里调用。
3、HarmonyOS 自定义组件支持链式调用吗?
自定义组件怎么实现系统组件那样的链式调用,如 XX() {}.a(“b”).c(“d”)
使用 @Styles 或 @Extend 装饰器,定义组件样式方法时,可以支持链式调用,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-style-V5
如果每个组件的样式都需要单独设置,在开发过程中会出现大量代码在进行重复样式设置,虽然可以复制粘贴,但为了代码简洁性和后续方便维护,我们推出了可以提炼公共样式进行复用的装饰器 @Styles。
@Styles 装饰器可以将多条样式设置提炼成一个方法,直接在组件声明的位置调用。通过 @Styles 装饰器可以快速定义并复用自定义样式。
4、HarmonyOS @Observed 监听多层数据结构失败?
通过 @ObjectLink 和 @Observed 类装饰器的配合,在涉及嵌套对象或数组的场景中进行双向数据同步,详情参考:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/arkts-observed-and-objectlink.md
5、HarmonyOS 如何实现 page 页面的横竖屏切换?
目前有页面横竖屏切换的需求,需要如何实现
设置横竖屏切换:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#setpreferredorientation9setPreferredOrientation(orientation: Orientation, callback: AsyncCallback<void>): void
设置主窗口的显示方向属性,使用 callback 异步回调。仅在支持跟随 sensor 旋转的设备上生效,2in1 设备上调用不生效,自由多窗模式(可点击设备控制中心中的自由多窗按钮开启)下调用不生效,子窗调用后不生效。
窗口尺寸变化的监听:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5
版权声明: 本文为 InfoQ 作者【轻口味】的原创文章。
原文链接:【http://xie.infoq.cn/article/4498fbaf199a69910d2241cdf】。文章转载请联系作者。
评论