我想在Flutter应用中更改ImageCache的行为。例如,我想尝试不同的驱逐策略。或者,我只想要零缓存(用于实验)。
如何更换以更改ImageCache?
答案 0 :(得分:8)
创建一个继承自WidgetsFlutterBinding的类。 覆盖该类上的createImageCache以返回您选择的ImageCache实现。 在调用runApp之前调用该类的构造函数。
每个应用程序有一个绑定。创建的第一个绑定(BindingBase的子类)将成为该绑定。调用runApp()实例化WidgetsFlutterBinding绑定,这通常是你想要的。 WidgetsFlutterBinding混合的一个类是PaintingBinding,它引入了createImageCache作为一种让你覆盖图像缓存的方法。它调用该方法,并将全局imageCache设置为该方法返回的任何内容。
答案 1 :(得分:3)
Ian Hickson提案的代码片段:
import 'package:flutter/widgets.dart';
class CustomImageCache extends WidgetsFlutterBinding {
@override
ImageCache createImageCache() {
// Set your image cache size
this.imageCache.maximumSize = 10;
return super.createImageCache();
}
}