7 методов реализации всплывающих сообщений во Flutter – подробное руководство

Во Flutter всплывающие сообщения — это важный компонент пользовательского интерфейса, используемый для отображения коротких и ненавязчивых сообщений пользователям. Эти сообщения обычно отображаются в нижней части экрана и исчезают через несколько секунд. В этой статье мы рассмотрим семь различных методов реализации всплывающих сообщений во Flutter.

  1. Пакет Toast:
    Самый простой способ реализовать всплывающие сообщения во Flutter — использовать сторонний пакет под названием fluttertoast. Добавьте пакет в файл pubspec.yaml, затем используйте следующий код для отображения простого всплывающего сообщения:
import 'package:fluttertoast/fluttertoast.dart';
Fluttertoast.showToast(
  msg: "Hello, Flutter Toast!",
  toastLength: Toast.LENGTH_SHORT,
  gravity: ToastGravity.BOTTOM,
  timeInSecForIosWeb: 1,
  backgroundColor: Colors.black45,
  textColor: Colors.white,
);
  1. Виджет Snackbar:
    Flutter предоставляет встроенный виджет SnackBar, который можно использовать для отображения всплывающих сообщений. Вот пример того, как его использовать:
ScaffoldMessenger.of(context).showSnackBar(
  SnackBar(
    content: Text('Hello, Flutter Snackbar!'),
    duration: Duration(seconds: 3),
  ),
);
  1. Пользовательский виджет всплывающих уведомлений.
    Вы можете создать собственный виджет для реализации всплывающих сообщений с большим контролем над дизайном и поведением. Вот пример:
import 'package:flutter/material.dart';
class CustomToast extends StatelessWidget {
  final String message;
  const CustomToast({required this.message});
  @override
  Widget build(BuildContext context) {
    return Container(
      alignment: Alignment.bottomCenter,
      child: Card(
        color: Colors.black45,
        child: Padding(
          padding: EdgeInsets.all(8.0),
          child: Text(
            message,
            style: TextStyle(color: Colors.white),
          ),
        ),
      ),
    );
  }
}
// To display the custom toast message:
Navigator.of(context).push(
  PageRouteBuilder(
    opaque: false,
    pageBuilder: (BuildContext context, _, __) {
      return CustomToast(message: 'Hello, Custom Toast!');
    },
  ),
);
  1. Наложение:
    Используя класс OverlayEntry, вы можете создать собственное наложение для отображения всплывающих сообщений. Вот пример:
import 'package:flutter/material.dart';
void showToast(BuildContext context, String message) {
  OverlayEntry overlayEntry = OverlayEntry(
    builder: (BuildContext context) => Positioned(
      bottom: 16.0,
      width: MediaQuery.of(context).size.width,
      child: Material(
        color: Colors.black45,
        child: Padding(
          padding: EdgeInsets.all(8.0),
          child: Text(
            message,
            style: TextStyle(color: Colors.white),
          ),
        ),
      ),
    ),
  );
  Overlay.of(context)?.insert(overlayEntry);
  // Remove the toast after a delay
  Future.delayed(Duration(seconds: 2), () {
    overlayEntry.remove();
  });
}
// To display the toast message:
showToast(context, 'Hello, Overlay Entry Toast!');
  1. Пакет оповещений Flutter RFlutter:
    Пакет rflutter_alertпредоставляет настраиваемое диалоговое окно оповещений, которое можно использовать для создания всплывающих сообщений. Вот пример:
import 'package:rflutter_alert/rflutter_alert.dart';
Alert(
  context: context,
  title: "Hello",
  desc: "Flutter Alert Toast!",
  type: AlertType.info,
  style: AlertStyle(
    backgroundColor: Colors.black45,
    descTextStyle: TextStyle(color: Colors.white),
    alertBorder: RoundedRectangleBorder(
      borderRadius: BorderRadius.circular(8.0),
      side: BorderSide.none,
    ),
  ),
).show();
  1. Пакет Flutter Snackbar:
    Пакет snackbarпредлагает удобный способ отображения всплывающих сообщений во Flutter. Вот пример:
import 'package:snackbar/snackbar.dart';
SnackBar(
  content: Text('Hello, Flutter Snackbar Package!'),
  duration: Duration(seconds: 3),
).show(context);
  1. Пакет AnimatedToast:
    Пакет animatedtoastпозволяет отображать анимированные всплывающие сообщения во Flutter. Вот пример:
import 'package:animatedtoast/animatedtoast.dart';
AnimatedToast.showToast(
  toastType: ToastType.success,
  context: context,
  message: "Hello, Animated Toast!",
  position: Position.bottom,
  duration: Duration(seconds: 2),
);

Всплывающие сообщения играют жизненно важную роль в улучшении пользовательского опыта в приложениях Flutter. В этой статье мы рассмотрели семь различных методов реализации всплывающих сообщений, включая использование сторонних пакетов, встроенных виджетов и создание собственных решений. Выберите метод, который лучше всего соответствует вашим требованиям, и начните добавлять информативные и визуально привлекательные всплывающие сообщения в свои приложения Flutter уже сегодня!