【问题标题】:Flutter - How to display composed SVG image correctlyFlutter - 如何正确显示组合的 SVG 图像
【发布时间】:2020-11-25 20:03:42
【问题描述】:

我想在 Flutter 中显示合成的 SVG 图像,我目前正在使用 flutter_svg 库。

我的图片由不同的图层组成,可以使用应用程序的 GUI 组合在一起(创建头像)。

原则上,它与 SVGPicturestack 一起工作得很好,但是在加载时,会出现一些问题,即某些 SVG 显示得比其他 SVG 稍晚,并且图形在这么短的时间内看起来就坏了 - 例如,化身的上半身没有加载但身体的其余部分 -> 化身中间有一个洞......

只有当所有部分都加载并可以显示时,有没有办法显示来自 SVGPictures 的合成?理想情况下,也应该显示一个假人这么长时间。

【问题讨论】:

    标签: flutter svg


    【解决方案1】:

    层数较多的SVG在加载时肯定会造成一些延迟,因此如果您想顺利加载它们,可以尝试预加载SVG。

    final svg = SvgPicture.asset('assets/vector.svg');
    final svgAnother = SvgPicture.asset('assets/vector.svg');
    
    @override
    Widget build(BuildContext context) {
      return Stack(
        children:[
          svg, // Load preloaded svg smoothly
          svgAnother,
        ],
      );
    }
    

    【讨论】:

    • 在我们的例子中,大约有数千个 SVG 图形,因此以这种方式预加载对我们不起作用。
    • 如果是数千个,那么绝对应该延迟加载 SVG。预加载它们会导致您的应用占用大量内存。
    猜你喜欢
    • 2022-11-23
    • 2020-08-08
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2022-01-25
    • 2020-09-28
    相关资源
    最近更新 更多