如何加载 AssetImage 或检查它是否存在?数据来自 api,因此我无法将所有文件路径列为常量。
例如,路径可能是“assets/images/${card.imageType}.png”,其中 card.inageType 是一个变量。
...
child: Image(
height: 60.0,
image: Utils.getImage('assets/images/card-${card.category}.png'),
),
...
对于我的 getImage 函数,我尝试了 2 种但不工作
方法 1:使用文件:existsSync 方法始终为 false。请记住,等待异步无法工作,因为 Image 小部件期望不是 Future
static dynamic getImage(path) {
File f = File(path);
return f.existsSync()
? FileImage(f)
: const AssetImage('assets/images/default.png');
}
}
方法2:使用try catch:未捕获异常
static AssetImage getImage(path) {
AssetImage image;
try {
image = AssetImage(path);
} catch (e) {
image = const AssetImage('assets/images/default.png');
}
return image;
}