🧩FadeInImage
Что такое FadeInImage
FadeInImage
FadeInImage
— это виджет в Flutter, который позволяет плавно загружать и отображать изображение с эффектом затухания. Он полезен, когда вы загружаете изображение из сети и хотите показать его с анимацией, чтобы улучшить пользовательский опыт. Например, вместо того чтобы показывать пустое пространство или индикатор загрузки, вы можете отображать изображение, которое плавно появляется на экране.
Пример использования
В этом примере мы создадим приложение, которое загружает изображение из сети и показывает его с эффектом затухания, используя FadeInImage
.

import 'package:flutter/material.dart';
class FadeInImageExample extends StatelessWidget {
const FadeInImageExample({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('FadeInImage Example')),
body: const Center(
child: FadeInImage(
placeholder: NetworkImage('https://i.postimg.cc/RhS6hrDN/3.png'), // Заполнитель
image: NetworkImage('https://i.postimg.cc/nLqtWXht/1.png'), // Загружаемое изображение
fit: BoxFit.cover, // Как изображение будет вписываться в область
fadeInDuration: Duration(seconds: 4), // Длительность затухания
fadeOutDuration: Duration(seconds: 3), // Длительность затухания при скрытии
),
),
);
}
}
Как работает код
FadeInImage — основной виджет, который мы используем для отображения изображения с эффектом затухания.
placeholder — это временное изображение или виджет, который отображается, пока загружается основное изображение. В этом примере мы используем изображение-заполнитель из локальных ресурсов.
image — это загружаемое изображение из сети. Мы используем
NetworkImage
, чтобы указать URL-адрес.fit — этот параметр определяет, как изображение будет вписываться в область. В данном случае используется
BoxFit.cover
, чтобы изображение заполнило всю область.fadeInDuration — длительность анимации появления изображения. В этом примере анимация занимает 1 секунду.
fadeOutDuration — длительность анимации исчезновения изображения. Эта настройка полезна, если вы хотите скрыть изображение перед заменой его на другое.
Все настройки FadeInImage
FadeInImage
placeholder (обязательный)
Описание: Виджет, который будет отображаться, пока основное изображение загружается. Может быть как изображение, так и любой другой виджет.
Пример:
placeholder: AssetImage('assets/placeholder.png') // Локальное изображение-заполнитель
image (обязательный)
Описание: Основное изображение, которое будет загружаться. Обычно используется
NetworkImage
илиAssetImage
.Пример:
image: NetworkImage('https://example.com/image.jpg') // Изображение из сети
fit
Описание: Определяет, как изображение будет вписываться в область. Используются те же значения, что и для других изображений, например,
BoxFit.cover
,BoxFit.contain
и другие.Пример:
fit: BoxFit.cover // Изображение будет обрезано, чтобы заполнить область
fadeInDuration
Описание: Длительность анимации появления изображения. Это время, за которое изображение станет видимым.
Пример:
fadeInDuration: Duration(seconds: 1) // Длительность затухания при появлении
fadeOutDuration
Описание: Длительность анимации исчезновения изображения. Полезно, если вы хотите скрыть изображение перед заменой его на другое.
Пример:
fadeOutDuration: Duration(seconds: 1) // Длительность затухания при скрытии
alignment
Описание: Определяет, как изображение будет выровнено, если оно меньше заданной области.
Пример:
alignment: Alignment.center // Центрирует изображение в области
repeat
Описание: Позволяет установить, будет ли изображение повторяться в пределах доступной области.
Пример:
repeat: ImageRepeat.noRepeat // Не повторять изображение
color
Описание: Цвет, который будет наложен на изображение.
Пример:
color: Colors.red.withOpacity(0.5) // Накладывает полупрозрачный красный цвет
colorBlendMode
Описание: Определяет, как цвет будет смешиваться с изображением.
Пример:
colorBlendMode: BlendMode.multiply // Способ наложения цвета
Итог
FadeInImage
— это удобный инструмент для создания эффектов плавного затухания при загрузке изображений. Он улучшает визуальное восприятие приложения, скрывая временные задержки при загрузке изображений из сети. Благодаря простому синтаксису вы можете легко настроить его под свои нужды, добавляя различные параметры для управления поведением изображения и его отображением.
Last updated