Buscar pacotes, repositórios e categorias de apps

Capa de adaptive_dialog
Detalhes do pacotev3.0.1

adaptive_dialog

Exiba o diálogo de alerta ou a folha de ação modal de forma adaptativa de acordo com a plataforma.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
34 mil
Curtidas
1,1 mil
Pontos Pub
160

Instalar pacote

flutter pub add adaptive_dialog

Visão geral do pacote

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

O Adaptive Dialog é um pacote do Flutter que exibe diálogos de alerta ou folhas de ação modais de forma apropriada ao plataforma. Ele seleciona automaticamente o melhor padrão de interface para cada plataforma-alvo — usando diálogos com estilo nativo no Android e iOS, e layouts consistentes para web/desktop em outras plataformas. Isso garante uma experiência do usuário coesa entre dispositivos sem exigir verificações manuais de plataforma. O pacote simplifica a implementação de diálogos multiplataforma com pouquíssimo código, suportando tanto alertas simples quanto ações complexas. Integra-se perfeitamente em aplicativos Flutter existentes.

Casos de uso

  • Consistência de diálogo multiplataforma
  • Diálogos semelhantes aos nativos no celular
  • Tratamento unificado de diálogos na web e no desktop
  • Simplificando a lógica de diálogo específica da plataforma
  • Melhorando a UX com padrões de interface adaptáveis

Principais recursos

  • Detecção automática de plataforma
  • Estilos de diálogo nativo no Android e no iOS
  • Comportamento consistente entre web e desktop
  • Código de boilerplate mínimo
  • Suporta tanto alertas quanto folhetos de ação

Indicado para

  • Desenvolvedores direcionados para múltiplas plataformas
  • Aplicativos que precisam de aparência de diálogo nativo
  • Equipes que priorizam a consistência da experiência do usuário
  • Projetos com uso frequente de diálogos
  • Iniciantes do Flutter procurando soluções simples de diálogo

Considerações

  • Personalização limitada além das opções básicas
  • Depende do renderização da plataforma subjacente
  • Pode exigir estilos adicionais para layouts complexos
  • Não ideal para designs de diálogos altamente personalizados
  • Mais adequado para cenários padrão de alerta e folha de ação

README original

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

adaptive_dialog

Show alert dialog or modal action sheet adaptively according to platform.

Web Demo: https://mono0926.com/adaptive_dialog/

showOkAlertDialog

Convenient wrapper of showAlertDialog.

iOS Android
n1 n2

showOkCancelAlertDialog

Convenient wrapper of showAlertDialog.

iOS Android
n3 n4
n5 n6

showConfirmationDialog

Show Confirmation Dialog. For Cupertino, fallback to ActionSheet.

iOS Android
n3 n5

showModalActionSheet

iOS Android
n7 n8
n9 n10
n11 n12

showTextInputDialog

iOS Android
n1 n2
n3 n4

showTextAnswerDialog

Show text input dialog until answer is correct or cancelled. This is useful for preventing very destructive action is executed mistakenly.

iOS Android
n5 n6

FAQ

How can I customize it flexibly?

This packages keeps usage and UI simple like iOS official alert dialog. Therefore, if you need more flexibility than this package provides, I recommend that you build your own directly using standard APIs to meet your requirements without using this package.

  • https://github.com/mono0926/adaptive_dialog/issues/19#issuecomment-754476937
  • https://github.com/mono0926/adaptive_dialog/issues/76#issuecomment-1120686982
  • https://github.com/mono0926/adaptive_dialog/issues/108#issuecomment-1543068734

The getter modalBarrierDismissLabel was called on null

adaptive_dialog uses Cupertino-style widgets internally on iOS, so GlobalCupertinoLocalizations.delegate is required under certain conditions.

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

class App extends StatelessWidget {
  const App({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      //...
      localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate, // This is required
      ],
    );
  }
}

The input text color same with backgound when using CupertinoTextInputDialog

This fixes the problem.

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart' hide Router;

class App extends StatelessWidget {
  const App({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      darkTheme: ThemeData(
        cupertinoOverrideTheme: const CupertinoThemeData(
          textTheme: CupertinoTextThemeData(), // This is required
        ),
      ),
    );
  }
}

macOS style and Web / WASM compatibility

AdaptiveStyle.macOS utilizes macos_ui widgets on native macOS. On Web platforms (both JavaScript and WASM), macos_ui is excluded to ensure Web and WASM compatibility, and dialogs configured with macOS style automatically fall back to Cupertino (iOS-style) dialogs.

Categorias

Dependências

Lista de dependências 7 itens

Repositório-fonte

Projetos que usam este pacote