SvgPicture 无法分配给 ImageProvider

Mah*_*poo 15 dart flutter

我正在尝试使用 svg 图像作为容器中的背景,并且我使用这个包“flutter_svg”我找不到提供程序方法来将其设置为装饰

    Container(
              margin: EdgeInsets.symmetric(horizontal: 5),
              width: 60,
              height: 20,
              decoration: BoxDecoration(
                color: currentColor.medium,
                borderRadius: BorderRadius.circular(4),
                image: DecorationImage(
                  image: SvgPicture.asset('assets/images/home.png'),
                ),
              ),
);
Run Code Online (Sandbox Code Playgroud)

参数类型“SvgPicture”无法分配给参数类型“ImageProvider”.dart(argument_type_not_assignable)

所以我不知道如何在这里使用 svg 作为 ImageProvider ,任何想法

Omi*_*aha 10

有两种选择:

第一个,为此编写一个函数,如此flutter_svg的包中所述:

final String rawSvg = '''<svg viewBox="...">...</svg>''';
final DrawableRoot svgRoot = await svg.fromSvgString(rawSvg, rawSvg);

final Picture picture = svgRoot.toPicture();
final Image image = await picture.toImage(width, height);
return RawImage(image, 1.0);
Run Code Online (Sandbox Code Playgroud)

第二个,在包之上使用另一个svg_flutter

import 'package:flutter_svg_provider/flutter_svg_provider.dart';

Image(
  width: 32,
  height: 32,
  image: Svg('assets/my_icon.svg'),
)
Run Code Online (Sandbox Code Playgroud)


小智 -2

Flutter 开发人员创建了一个库,您可以在此处找到 https://www.developerlibs.com/2019/06/flutter-draw-svg-vector-drawables.html

  • 我知道我已经在使用该库了,但问题是我不能将它用作 ImageProvider (2认同)