Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
341 of 1024 menu
◀ ▶

Метод evict

Метод evict класса AssetBundle принимает ключ key того же вида, что и у AssetImage. После вызова следующая отрисовка снова прочитает файл и декодирует картинку.

Синтаксис

Future<void> evict(String key)

Параметры

Параметр Описание
key Путь к ресурсу в активах. Обязательный аргумент.

Пример

Давайте сбросим кэш и снова покажем картинку:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: EvictDemo())); } class EvictDemo extends StatelessWidget { const EvictDemo({super.key}); Future<void> _reload(BuildContext context) async { final bundle = DefaultAssetBundle.of(context); await bundle.evict('assets/pic.png'); } @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Column( mainAxisSize: MainAxisSize.min, children: [ Image.asset('assets/pic.png', width: 100), const SizedBox(height: 16), ElevatedButton( onPressed: () => _reload(context), child: const Text('abcde'), ), ], ), ), ); } }

На экране кнопка вызовет evict, и при следующем кадре картинка загрузится заново.

Пример

Давайте вызовем evict через rootBundle:

import 'package:flutter/services.dart'; void main() async { await rootBundle.evict('assets/pic.png'); print('abcde'); }

Результат выполнения кода

"abcde"

Смотрите также

  • метод load,
    который читает байты файла
  • функция precacheImage,
    которая заранее кладёт картинку в кэш
  • класс AssetImage,
    чей ключ совпадает с аргументом evict
  • константа rootBundle,
    у которой тоже есть evict
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить