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

Виджет DefaultAssetBundle

Виджет DefaultAssetBundle принимает AssetBundle в параметре bundle и оборачивает child. Внутри поддерева DefaultAssetBundle.of и Image.asset будут читать этот набор, а не rootBundle.

Синтаксис

DefaultAssetBundle( bundle: customBundle, child: child, )

Параметры

Параметр Описание
bundle Набор активов для дочерних виджетов. Обязательный параметр.
child Поддерево, которое получит новый AssetBundle. Обязательный параметр.

Пример

Давайте явно передадим rootBundle дочернему Image:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: DefaultAssetBundle( bundle: rootBundle, child: Scaffold( body: Center( child: Image.asset('assets/pic.png', width: 120), ), ), ), ), ); }

На экране картинка загрузится из того же набора, что и без обёртки, но путь к bundle задан явно.

Пример

Давайте прочитаем bundle из контекста через Builder:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: DefaultAssetBundle( bundle: rootBundle, child: Builder( builder: (context) { final same = DefaultAssetBundle.of(context); return Scaffold( body: Center( child: Text('${identical(same, rootBundle)}'), ), ); }, ), ), ), ); }

На экране текст 'true' покажет, что контекст видит переданный rootBundle.

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

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