Buscar pacotes, repositórios e categorias de apps

Capa de flutter_sliding_toast
Detalhes do pacotev1.8.0

flutter_sliding_toast

Um pacote do Flutter para exibir mensagens com estilos personalizados e comportamento de animação.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
1 mil
Curtidas
51
Pontos Pub
160

Instalar pacote

flutter pub add flutter_sliding_toast

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter que permite exibir mensagens de toast personalizáveis com animações suaves de deslizamento em múltiplas plataformas. Ele oferece estilos personalizados, incluindo cores, fontes e posicionamento, e permite que os desenvolvedores definam comportamentos de animação personalizados para uma experiência do usuário refinada. Ideal para fornecer feedback breve ou notificações sem interromper o fluxo do aplicativo. O pacote é leve e se integra perfeitamente a projetos existentes no Flutter.

Casos de uso

  • Exibindo feedback do usuário após ações
  • Mostrando mensagens de sucesso ou erro
  • Fornecendo alertas temporários em aplicativos
  • Melhorando a interface com notificações animadas
  • Personalizando a aparência e o comportamento da mensagem

Principais recursos

  • efeitos de animação deslizante
  • Opções de estilização personalizáveis
  • Compatibilidade multiplataforma
  • Integração fácil com o Flutter
  • Suporte para vários tipos de mensagens
  • Duração e direção de animação configuráveis

Indicado para

  • Aplicações móveis e web
  • Aplicativos que exigem notificações sutis
  • Desenvolvedores em busca de feedback animado
  • Projetos Flutter voltados para a interface do usuário
  • Equipes que desejam soluções leves de toast

Considerações

  • Limitado à funcionalidade básica de toast
  • Sem suporte embutido para layouts complexos
  • A personalização de animação exige conhecimento de código
  • Pode ser necessário estilização adicional para o modo escuro
  • Não adequado para notificações persistentes

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Flutter Sliding Toast

pub license: MIT

Enhance your app's UI with customizable, interactive toasts! This package offers both sliding & popup styles, with features like animation control, tap actions, and multiple dismiss options.

🎨 Screenshots

🎯 Features

  • Show sliding toasts, modify sliding behaviors
  • Show popup toasts, disable or modify fading and scaling behaviors
  • Change toast's alignment positions and sliding toast's sliding directions
  • Define animation and display duration, max height and width, padding
  • Set title, leading, trailing widgets and make title width dynamic or expanded
  • Disable the progressbar in sliding toast if needed
  • Use glassmorphism/gradient/decorated background or default success and error toast
  • Slide any direction to dismiss sliding toast and vertically for popup toast
  • Dismiss an individual or all toasts programmatically
  • Pause the animation with long press and release it to continue
  • Execute a function after the toast is tapped or disposed
  • Disable Multiple tapping to execute 'onTap' callback only one time
  • Initialize context or overlay state early for persistent toast availability

⚙️ Getting Started

Requires Flutter 3.47.0 or newer.

Add the following line to pubspec.yaml:

dependencies:
  flutter_sliding_toast: ^1.6.0

🚀 Usage

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        iconTheme: const IconThemeData(color: Colors.white),
        title: const Text('Sliding & Popup Toast'),
        centerTitle: true,
      ),
      body: SafeArea(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            const SizedBox(width: double.maxFinite),
            ElevatedButton(
              onPressed: () {
                InteractiveToast.slide(
                  context: context,
                  leading: _leadingWidget(),
                  title: const Text(
                    "Hi there! I'm a sliding toast 😎. "
                    'Dismiss me by sliding upward.',
                  ),
                  trailing: _trailingWidget(),
                  toastStyle: const ToastStyle(titleLeadingGap: 10),
                  toastSetting: const SlidingToastSetting(
                    displayDuration: Duration(seconds: 2),
                    toastStartPosition: ToastPosition.top,
                    toastAlignment: Alignment.topCenter,
                  ),
                );
              },
              child: _textWidget('Sliding toast from top center'),
            ),
            const SizedBox(height: 30),
            ElevatedButton(
              onPressed: () {
                final overlayState = Overlay.of(context);
                InteractiveToast.pop(
                  overlayState: overlayState,
                  title: const Text(
                    "Hi! I'm a popup toast 🐺. "
                    'I have fading and scaling effect.',
                  ),
                  trailing: _trailingWidget(),
                  toastSetting: const PopupToastSetting(
                    animationDuration: Duration(seconds: 1),
                    displayDuration: Duration(seconds: 3),
                  ),
                );
              },
              child: _textWidget('Popup toast at bottom center'),
            ),
          ],
        ),
      ),
    );
  }

  Text _textWidget(String text) =>
      Text(text, style: const TextStyle(fontSize: 16));

  Icon _trailingWidget() => const Icon(Icons.person, color: Colors.deepPurple);

  Container _leadingWidget() {
    return Container(
      width: 40,
      height: 40,
      decoration: BoxDecoration(
        shape: BoxShape.circle,
        color: Colors.purple,
        boxShadow: [
          BoxShadow(
            color: Colors.black.withAlpha(25),
            spreadRadius: 3,
            blurRadius: 4,
          ),
        ],
      ),
      alignment: Alignment.center,
      child: const Text('🦄', style: TextStyle(fontSize: 20)),
    );
  }
}

❤️ Additional information

Pull requests are welcomed!

If you encounter any problems or you have any ideas, feel free to open an issue:

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.