如何在Flutter中更改或替换ImageCache?

时间:2017-12-15 16:42:01

标签: dart flutter

我想在Flutter应用中更改ImageCache的行为。例如,我想尝试不同的驱逐策略。或者,我只想要零缓存(用于实验)。

如何更换以更改ImageCache?

2 个答案:

答案 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();
      }
    }