如何在Flutter中使用flutter_svg显示含href的SVG图片?
解决Flutter中flutter_svg无法渲染含xlink:href属性SVG的问题
以下是几个可行的解决方法,按优先级尝试:
升级flutter_svg到最新版本
旧版本的flutter_svg对SVG的xlink:href属性(尤其是<use>引用内部带base64的<image>场景)支持不完善,升级到最新稳定版后,很多这类兼容性问题会被修复。将xlink:href替换为href(SVG2标准语法)
SVG2已废弃xlink:href,改用简化的href属性,修改你的SVG代码:<!-- 修改后的<use>标签 --> <use href="#image0_11_2222" transform="scale(0.00100000 0.00200000)"/><!-- 修改后的<image>标签 --> <image id="image0_11_2222" width="300" height="300" href="data:image/png;base64,..."/>flutter_svg对SVG2语法的支持更友好,修改后多数情况下能正常渲染。
预处理SVG,移除
如果上面的方法都无效,直接把<use>替换为对应的<image>内容,把transform属性转移到<image>标签上:<image width="300" height="300" transform="scale(0.00100000 0.00200000)" href="data:image/png;base64,..."/>这样绕开了
<use>的引用逻辑,直接渲染图片资源。检查base64编码完整性
确认<image>标签里的base64字符串没有截断、格式正确(必须以data:image/png;base64,开头,后续编码完整无缺失),编码错误也会导致图片加载失败。
内容的提问来源于stack exchange,提问作者sub
相关产品推荐
相关产品推荐

