v4.9.0shirne_dialog
Um pacote Flutter para usar alertas, mensagens, popups, snacks, visualização de imagens, carregamento, etc., com estilo personalizável em qualquer lugar.
Um pacote para Flutter com diálogos personalizáveis (Alerta, Confirmação, Prompt, Toast, ...)
{"sdk":"flutter"}>=0.3.1 <1.0.0{"sdk":"flutter"}—Texto original em inglês. Visite o GitHub para a versão atual.
A flutter package to use alert, confirm, prompt, toast, popup, snack, imagePreview, loading etc. with customizable style in anywhere.
pub package✅ toast
✅ alert
✅ confirm
✅ prompt [new]
✅ modal
✅ popup
✅ imagePreview
✅ snack
✅ loading
✅ dropdown [new]
🚧 imagePreview support hero
🚧 modal adaptive & more style
🚧 guide
You must initialize ShirneDialogTheme on theme.extensions between flutter version 3.0.0 - 3.0.4
Above 3.0.5 dialog will use default theme when not provide in ThemeData.extends
| Toast | Dialog | ImagePreview |
|---|---|---|
| toast | dialog | imagePreview |
| Loading | Popup | Snackbar |
| loading | popup | snack |
| Dropdown | Dropdown | Customize |
| loading | popup | snack |
add localizations
dependencies:
#...
flutter_localizations:
sdk: flutter
#...
Recommanded usage
// Use Mydialog.navigatorKey with MaterialApp
// and set theme for dialog
MaterialApp(
// ...
navigatorKey: MyDialog.navigatorKey,
localizationsDelegates:[
ShirneDialogLocalizations.delegate,
// flutter locals see [https://docs.flutter.dev/development/accessibility-and-localization/internationalization]
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
theme: ThemeData.light().copyWith(extensions: [const ShirneDialogTheme()]);
// ...
);
// Use with MaterialApp.router
MaterialApp.router(
routerDelegate: AppRouterDelegate(),
);
class AppRouterDelegate<T> extends RouterDelegate<T> with PopNavigatorRouterDelegateMixin{
@override
GlobalKey<NavigatorState>? get navigatorKey => MyDialog.navigatorKey;
// ...
}
// Use with Getx
MyDialog.navigatorKey = Get.key;
// call in anywhere
MyDialog.confirm('aaa');
MyDialog.alert('test');
MyDialog.toast('test');
In 2.x and earlier
MyDialog.of(context).toast('tip message');
MyDialog.of(context).alert(Text('alert message'));
MyDialog.of(context).confirm(Text('alert message')).then((v){
});
MyDialog.of(context).popup(Text('popup contents'));
MyDialog.of(context).snack('tip');
// initialize in MaterialApp
MaterialApp(
//...
navigatorKey: MyDialog.navigatorKey,
//...
);
// and then call in anywhere
MyDialog.confirm('aaa');
MyDialog.alert('test');
MyDialog.toase('test');