我的应用程序使用了许多图像,所以为了减小应用程序的大小,我使用了SVG而不是PNG。现在我无法使用SVG作为precacheImage
。我用SvgPicture
代替AssetImage
,但仍然不工作。
static void precacheMeasures(BuildContext context) async {
for (int i = 0; i < MeasureCategoriesEnum.values.length; ++i) {
final MeasureCategoriesEnum category = MeasureCategoriesEnum.values[i];
final List<MeasuresEnum> measures = categories[category]!;
for (MeasuresEnum measure in measures) {
final String caption = TypeHelpers.getEnumCaption(measure);
final MeasureCategoriesEnum? category =
categories.keys.firstWhereOrNull((MeasureCategoriesEnum k) => categories[k]!.contains(measure));
precacheImage(AssetImage('Resources/Images/Measures/${TypeHelpers.getEnumCaption(category)}/$caption.svg'), context);
}
}
任何解决方案都会有帮助。
1条答案
按热度按时间mfuanj7w1#
我建议使用
SvgPicture.asset('assetname.svg')
。可以通过Pub:https://pub.dev/packages/flutter_svg。它的行为应该与任何其他资产映像一样。