flutter1.22的echart在鸿蒙OS上的一些兼容性bug

本文最后更新于:2023年8月14日 下午

Flutter应用在其他Android机器都是好的,但是鸿蒙系统不能正确显示图表,解决了显示问题之后,切换数据也不刷新,真烦人啊,上网搜了一大圈,低版本的Android也会出现这个问题,所以导致这个问题的底层原因是鸿蒙是低版本Android??

一、华为鸿蒙系统不能显示图表

1、相显示图表必须使用webview的混合显示模式

1
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();

在 initState,update,dispose 三个地方注意一下

2、网页的宽高问题

此时渲染出来的图表宽高是0,我也不想深究原因了,直接加了200ms延迟,这样他就获取到了Flutter元素控件的宽高,或者写死固定宽高当然也可以。

上述修改主要增加了混合模式和一个初始化图表延迟200毫秒,显示图表没问题

二、图表update不生效

1、update改写,直接reload,这样就可以了,按钮切换图表刷新正常;

2、不过当页面不在正前方时,图表的update依然不生效,—华为鸿蒙有问题,其他是好的

3、把chart的div设置固定宽高是可以的,通过js设置宽高可行吗?

不行,混合渲染是图表会在上层,初始的宽高会生效,但是再设置就不生效了,小米,鸿蒙都不行,舍弃


flutter1.22的echart在鸿蒙OS上的一些兼容性bug
http://bestkele.com/2022/03/30/flutter/harmony-echart/
作者
kele
发布于
2022年3月30日
许可协议