【发布时间】:2021-07-05 18:13:14
【问题描述】:
我正在遍历对象的列表视图,并从 package:favicon/favicon.dart 中检索图标 URL 作为 future: 在 FutureBuilder 中的 future:。然后,我使用这些 URL 将 favicon 图像返回并缓存在容器中,作为带有 CachedNetworkImageProvider 的前导 listtile 图标。
这很好用,但是每次刷新列表视图时都需要时间来加载,因为它必须从 favicon url getter 中检索最佳 url。
如何缓存 future: 值,以便在第一次使用后使用 URL 检索器没有延迟。代码如下:
return new ListTile(
leading:
FutureBuilder(
future: iconz.Favicon.getBest(urlBase),
builder: (context, snapShot2) {
if (snapShot2.hasData){
String urlIcon = snapShot2.data.url.toString();
var containImage = Container(
height: 40,
width: 40,
decoration: BoxDecoration(
shape: BoxShape.circle,
image: DecorationImage(
image: CachedNetworkImageProvider(urlIcon),
fit: BoxFit.fill
),
),
);
return containImage;
}
else {
return
const Icon(Icons.remove_red_eye, color: Color(0xff00caff), size: 40);
}
}
),
title: ...
总结:如何在future: iconz.Favicon.getBest(urlBase),上使用flutter_cache_manager?
【问题讨论】:
-
澄清一下,每次刷新时网址都不会改变?
-
他们可以,但通常不会。 URL 是 Flutter favicons api 为相应 url 返回的“最佳” favicon url。
标签: flutter dart asynchronous caching flutter-futurebuilder