Предварительная загрузка изображений, отображаемых с помощью CachedNetworkImage - PullRequest
1 голос
/ 07 октября 2019

Flutter CachedNetworkImage почти волшебство, но было бы лучше, если бы они предложили способ загрузки изображений перед тем, как их показывать. Я хочу загрузить изображения на одном экране и показать их на другом с CachedNetworkImage. Если попытка предварительной выборки не удалась, CachedNetworkImage должен вести себя как обычно, загружая и кэшируя изображение.

Существует ли какой-либо распространенный способ предварительной выборки изображений во Flutter?

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Precache CachedNetworkImage, как показано ниже, код

Image myImage;
bool _loading = true;

@override
void initState() {
myImage = Image(
  image: CachedNetworkImageProvider("http://via.placeholder.com/350x150"),
);
myImage.image
    .resolve(ImageConfiguration())
    .addListener(ImageStreamListener((_, __) {
  if (mounted) {
    setState(() {
      _loading = false;
    });
  }
}));
super.initState();
}

  @override
  void didChangeDependencies() {
  super.didChangeDependencies();
  precacheImage(myImage.image, context);
 }

И используйте myImage в качестве виджета. _loading сообщает, что изображение загружено или нет.

0 голосов
/ 07 октября 2019

Вы можете использовать precacheImage для добавления к изображению в кэш изображений флаттера.

precacheImage(CachedNetworkImageProvider(imgaeUrl), context)

Ps: я на мобильном телефоне, я отредактирую и отформатирую это, когда получудоступ к моей системе.

...