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

Картинка из сети Image.network в Flutter

Аватары и превью из интернета выводят Image.network. Первый аргумент - строка URL. Пока байты не пришли, место на экране уже занято, и полезно показать индикатор или заглушку.

Параметр loadingBuilder вызывается при загрузке: внутри можно вернуть CircularProgressIndicator или серый блок. Если картинка не загрузилась, срабатывает errorBuilder - там ставят иконку или текст «нет фото»:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: NetworkImagePage())); } class NetworkImagePage extends StatelessWidget { const NetworkImagePage({super.key}); static const photoUrl = 'https://picsum.photos/seed/flutter/320/200'; // https, not cleartext @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('Network')), body: Center( child: ClipRRect( borderRadius: BorderRadius.circular(8), child: Image.network( photoUrl, width: 320, height: 200, fit: BoxFit.cover, loadingBuilder: (context, child, progress) { if (progress == null) return child; return const SizedBox( width: 320, height: 200, child: Center( child: CircularProgressIndicator(), ), ); }, errorBuilder: (context, error, stack) { return const SizedBox( width: 320, height: 200, child: Icon(Icons.broken_image, size: 48), ); }, ), ), ), ); } }

Покажите картинку 96×96 по адресу https://picsum.photos/seed/preview/96/96. Пока она грузится, на её месте только CircularProgressIndicator. В errorBuilder поставьте Icons.person размером 40.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить