【HarmonyOS NEXT】lottie动画无法播放

【关键字】

lottie动画库 / tabBar

【问题描述】

三方库:https://gitee.com/openharmony-tpc/lottieArkTS

在5.0真机设备上无法播放动画。系统版本:4.0.0.65。

demo下载后,加载2016,出现HAPPY图片,点击播放,没有任何反应。集成在tabbar,动画也不执行,但tabbar可以正常切换。

其中使用的动画库版本为: "@ohos/lottie": "^2.0.6"

出现问题的demo代码样例:

@Builder Build1(index: number, tabBar: TabBarItem) {
Flex({
direction: new BreakPointType({
sm: FlexDirection.Column,
md: FlexDirection.Row,
lg: FlexDirection.Column
}).getValue(this.currentBreakpoint),
justifyContent: FlexAlign.Center,
alignItems: ItemAlign.Center
}) {
Canvas(this.canvasRenderingContext)
.width(36)
.height(36)
.backgroundColor(Color.White)
.onReady(() => {
lottie.loadAnimation({
container: this.canvasRenderingContext,
renderer: 'canvas', // canvas 渲染模式
loop: false,
autoplay: false,
name: 'h',
path: "lottie/data.json", // 路径加载动画只支持entry/src/main/ets 文件夹下的相对路径
})
})

Text(tabBar.name)
.fontColor(this.currentIndex === index ? "#03C067" : '#999')
.margin(new BreakPointType(this.breakPointTypeOptionEntity).getValue(this.currentBreakpoint))
.fontSize(16)
}
}

Tabs() {
TabContent() {
Stack() {
this.content()
}
}.tabBar(this.Build1(0, this.tabs[0]))

TabContent() {
Stack() {
this.content2()
}
}.tabBar(this.Build2(1, this.tabs[1]))
}.onchange(() => {
// 在change里触发动画,执行了一个动画之后,停止几秒,tabbar就再也切换不了
})
【解决方案】

经分析验证,动画不再播放这个问题确实存在,原因是动画播放结束后,播放线程也停止了,所以即使回到第一帧也无法再播放动画了。在最新版三方库2.0.7-rc.0中已解决,使用最新版即可解决此问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值