我使用 svg_flutter,想要在应用程序中缓存我的 SVG 网络。
请问有人可以帮我吗?我该如何实现它呢?
以下是我的部分代码:
SvgPicture.network(data[index]["Cat_Image"]),
我只是想抓住它们。
我使用 svg_flutter,想要在应用程序中缓存我的 SVG 网络。
请问有人可以帮我吗?我该如何实现它呢?
以下是我的部分代码:
SvgPicture.network(data[index]["Cat_Image"]),
我只是想抓住它们。
我写了一个小方法如下:
Future<void> _precache() async {
for (String imageUrl in _urls) {
await precachePicture(
NetworkPicture(
SvgPicture.svgByteDecoderBuilder,
imageUrl,
),
null,
);
}
}
这应该在应用程序启动之前或至少在使用小部件之前运行。我正在一个在runApp中创建的提供者中使用它。
据我理解,在小部件中,您将像平常一样:
SvgPicture.network(
image_url,
);
flutter_advanced_networkimage_2: ^2.0.1
包。SvgPicture(
AdvancedNetworkSvg(
'YOUR IMAGE URL',
useDiskCache: true,
(theme) => (bytes, colorFilter, key) {
return svg.svgPictureDecoder(
bytes ?? Uint8List.fromList(const []),
false,
colorFilter,
key,
theme: const SvgTheme(currentColor: Colors.green, xHeight: 20),
);
},
loadFailedCallback: (){
return SvgPicture.asset(
'placeholder or error image',
fit: BoxFit.scaleDown,
width: 24,
height: 24,
color: Colors.red,
);
}
),
)
在主方法中使用此代码
await precachePicture(ExactAssetPicture(SvgPicture.svgStringDecoderBuilder, 'assets/images/yourSvg.svg'), null);
SvgPicture
使用,它可能会加载得更快”。 - pskinkImg(
'https://raw.githubusercontent.com/shafi-org/portfolio/master/src/assets/flutter-svgrepo-com.svg',
width: 300,
height: 300,
),