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」定期分享有趣有料的精品原创文章!
非常感谢各位人才能看到这里,原创不易,文章如果有帮助可以关注、点赞、分享或评论,这都是对我的莫大支持!