Flutter下加载本地资源GIF,怎么做到每次进入页面都会出现动画效果?

InterviewCoder

1. 问题:Flutter 加载 GIF 之后,只有第一次进入页面才会执行动画,接下来都不会执行了
2. 原因:因为 Flutter 的图片缓存机制,在第一次加载图片后,会将图片缓存下来,所以再次访问,你看见的还是上次的已经执行完毕的动画
3. 解决:在 dispose 中把 imageCache 用 clear 方法清理掉

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
String asset = "images/401.gif";
Widget img = Image.asset("images/401.gif",key: UniqueKey(),);

@override
void initState() {
super.initState();
//初始化
toast();
}

@override
void dispose() {
super.dispose();
//清理缓存
imageCache!.clear();
}

void toast() {
DialogUtils.showErrorMessage("401",
gravity: ToastGravity.CENTER, toastLength: Toast.LENGTH_SHORT);

Future.delayed(Duration(seconds: 3), () {
DialogUtils.showMessage("您没有权限访问......",
gravity: ToastGravity.CENTER, toastLength: Toast.LENGTH_LONG);
});
}

# 关于我

Brath 是一个热爱技术的 Java 程序猿,公众号「InterviewCoder」定期分享有趣有料的精品原创文章!

InterviewCoder

非常感谢各位人才能看到这里,原创不易,文章如果有帮助可以关注、点赞、分享或评论,这都是对我的莫大支持!

评论