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

Метод load

Метод load класса AssetBundle принимает ключ key и возвращает Future<ByteData>. Результат можно превратить в Uint8List для MemoryImage.

Синтаксис

Future<ByteData> load(String key)

Параметры

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

Пример

Давайте загрузим байты и покажем картинку из памяти:

import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; void main() { runApp(const MaterialApp(home: LoadBytesDemo())); } class LoadBytesDemo extends StatefulWidget { const LoadBytesDemo({super.key}); @override State<LoadBytesDemo> createState() => _LoadBytesDemoState(); } class _LoadBytesDemoState extends State<LoadBytesDemo> { Uint8List? bytes; @override void initState() { super.initState(); rootBundle.load('assets/pic.png').then((data) { setState(() => bytes = data.buffer.asUint8List()); }); } @override Widget build(BuildContext context) { if (bytes == null) { return const Scaffold(body: Center(child: CircularProgressIndicator())); } return Scaffold( body: Center(child: Image.memory(bytes!, width: 120)), ); } }

На экране после load появится картинка из assets/pic.png.

Пример

Давайте сравним два вызова с разными ключами:

import 'package:flutter/services.dart'; void main() async { try { await rootBundle.load('assets/missing.png'); print('abcde'); } catch (_) { print('12345'); } }

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

"12345"

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

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