写点什么

【每日学点 HarmonyOS Next 知识】动图循环播放、监听 tab 切换、富文本上下滚动、tab 默认居中、a 标签唤起拨号

作者:轻口味
  • 2025-03-10
    北京
  • 本文字数:1715 字

    阅读完需:约 6 分钟

【每日学点HarmonyOS Next知识】动图循环播放、监听tab切换、富文本上下滚动、tab默认居中、a标签唤起拨号

1、image 加载网络动图播放一遍后不再播放,有什么方法可以 设置循环播放

目前 ArkUI 不支持 gif 图片设置轮播次数,可通过三方库 ohos-gif-drawable 设置轮播次数,在播放一次结束后的回调方法 getLoopFinish()中更新播放次数,达到指定次数后设置播放速率 setSpeedFactor()为 0 停止播放。


参考文档:https://gitee.com/openharmony-sig/ohos_gif-drawableohos-gif-drawable基于 Canvas 进行绘制,主要能力如下:


  • 支持播放 GIF 图片。

  • 支持控制 GIF 播放/暂停。

  • 支持重置 GIF 播放动画。

  • 支持调节 GIF 播放速率。

  • 支持监听 GIF 所有帧显示完成后的回调。

  • 支持设置显示大小。

  • 支持 7 种不同的展示类型。

  • 支持设置显示区域背景颜色。

2、HarmonyOS TabContent tab 页面切换的时候 TabContent 里的页面怎么监听切换到当前页面了?

TabContent tab 页面切换的时候 TabContent 里的页面怎么监听切换到当前页面了,切换的时候是否会触发 TabContent 里页面的生命周期方法


可使用 onTabBarClick 事件,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-tabs-V5tabs切换触发的应该是子组件组件级的生命周期 aboutToAppear

3、HarmonyOS RichText 可以向左和向上滑动?

可以使用 Web 组件显示,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5


// xxx.etsimport { webview } from '@kit.ArkWeb';import { BusinessError } from '@kit.BasicServicesKit';
@Entry@Componentstruct WebComponent { controller: webview.WebviewController = new webview.WebviewController();
build() { Column() { Button('loadData') .onClick(() => { try { this.controller.loadData( "<html><body> <p style=\"font-size: 100; color: #999999;\">我是一个richtext</p></body></html>", "text/html", "UTF-8", " ", " " // 如果有#的特殊字符,则后面两个参数要改为一个空格 ); this.controller.setScrollable(false); // 设置是否滑动 } catch (error) { console.error(`ErrorCode: ${(error as BusinessError).code}, Message: ${(error as BusinessError).message}`); } }) Web({ src: '', controller: this.controller }) } }}
复制代码

4、HarmonyOS 实现横向 tab 快速滑动,且快速滑动停止后可以默认居中自动选中显示?

List 组件中 onScrollIndex 方法的属性.scrollSnapAlign(ScrollSnapAlign.CENTER)实现居中要滚动停止的时候再给他定到可视区中间的话,可以用 onScrollStop 这个事件监听滚动停止的时候定一下位,想让一直停留在可视区正中间的话直接定位中间就行,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-list-V5#ZH-CN_TOPIC_0000001930756925__onscrollindex

5、HarmonyOS Next 在 H5 页面中使用<a\>元素唤起系统拨号功能不起作用

可能有以下几个原因:


  • 页面加载问题:如果 H5 页面中定义的 system.onmessage 函数代码逻辑较多,且依赖一些外部 JS 库的引用,可能会由于页面加载不完全导致系统拨号功能无法正常调用。此时,建议在 onpagefinish 事件处理函数中触发系统拨号功能。

  • 系统权限问题:确保设备已开启系统拨号功能,并且应用具有相应的权限。可以检查设备设置中的应用权限配置。

  • 网络问题:确保设备已连接到网络,并且网络连接正常。页面加载顺序问题如果页面中存在需要加载的资源(如图片、脚本等),这些资源未加载完成之前可能会导致系统拨号功能无法正常调用。建议将系统拨号功能的代码放在资源加载完成后执行。

  • 页面生命周期问题

  • 确保页面的生命周期事件(如 onload、onready 等)正确处理,以便在页面加载完成后触发系统拨号功能。

  • 检查页面加载顺序:确保资源加载完成后再执行系统拨号功能的代码。

  • 设置页面生命周期事件:在页面加载完成后,使用 onload 或 onready 事件触发系统拨号功能。

  • 确保系统权限:检查设备设置中的应用权限配置,确保应用具有调用系统拨号功能的权限。

  • 网络环境:确保设备已连接到网络,并且网络连接正常。


发布于: 刚刚阅读数: 5
用户头像

轻口味

关注

🏆2021年InfoQ写作平台-签约作者 🏆 2017-10-17 加入

Android、音视频、AI相关领域从业者。 欢迎加我微信wodekouwei拉您进InfoQ音视频沟通群 邮箱:qingkouwei@gmail.com

评论

发布
暂无评论
【每日学点HarmonyOS Next知识】动图循环播放、监听tab切换、富文本上下滚动、tab默认居中、a标签唤起拨号_HarmonyOS_轻口味_InfoQ写作社区