Orientação gerada a partir de informações públicas. Apenas para referência.
Um pacote Flutter que fornece um diálogo personalizável para exibir mensagens breves ou notificações aos usuários. Projetado para simplicidade e facilidade de integração, suporta múltiplas plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. O diálogo pode ser usado para mostrar dicas úteis, atualizações de status ou alertas com um estilo limpo e moderno. É leve e ideal para aplicativos que exigem mecanismos mínimos e não intrusivos de feedback. O pacote é mantido por inrush.cn e está disponível via pub.dev.
Casos de uso
Exibindo dicas de orientação do usuário
Mostrando mensagens de status temporárias
Fornecendo dicas de integração
Notificando usuários sobre ações
Melhorando o feedback da interface
Principais recursos
Suporte multiplataforma
Aparência personalizável
API simples
Design leve
Integração fácil com aplicativos Flutter
Duração e animação configuráveis
Indicado para
Aplicações móveis e web
Fluxos de onboarding
Recursos de educação do usuário
Designs de interface do usuário minimalistas
Sistemas de feedback rápido
Considerações
Limitado à funcionalidade básica de diálogo
Nenhuma localização embutida
Requer manipulação manual da lógica de fechamento
Não adequado para formulários ou modais complexos
Melhor para mensagens de curta duração e não críticas
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
TipDialog
Please use 3.0.0 or above version, because earlier versions have serious performance issues
You can install packages from the command line:
with Flutter:
$ flutter packages get
3. Import it
Now in your Dart code, you can use:
import'package:tip_dialog/tip_dialog.dart';
4. Use
Available attributes
/// [TipDialogContainer]@requiredthis.child,
/// automatically disappear timethis.duration: constDuration(seconds: 3),
/// mask layer alphathis.maskAlpha: 0.3// outside touchable, default false// if true and onOutsideTouch not set, when use TipDialogHelper.loading(), you can touch mask layer to dismiss// if true and onOutsideTouch set, when touching the mask layer, onOutsideTouch will be called.this.outsideTouchable: false// outside touch callback {@link OutsideTouchCallback}this.onOutsideTouch
Global Use
/// Use [TipDialogContainer] globally/// This widget can be globally supportedvoidmain() => runApp(newMyApp());
classMyAppextendsStatelessWidget{
@overrideWidgetbuild(BuildContext context) {
returnnewMaterialApp(
title: 'TipDialog Demo',
theme: newThemeData(),
home: Stack(
children: <Widget>[
MyHomePage(title: 'TipDialog Demo Home Page'),
// add [TipDialogContainer] widget hereTipDialogContainer(duration: constDuration(seconds: 2))
],
),
);
}
}
/// use TipDialogHelper to show or dismiss tipWidgetbuild(BuildContext context) {
returnnewScaffold(
appBar: newAppBar(
title: newText(widget.title),
elevation: 0.5,
),
body: newListView(children: <Widget>[
_buildItem("Loading Type Tip Dialog", () async {
TipDialogHelper.loading("Loading");
awaitnewFuture.delayed(newDuration(seconds: 5));
TipDialogHelper.dismiss();
}),
newDivider(),
_buildItem("Success Type Tip Dialog", () async {
TipDialogHelper.success("Loaded Successfully");
}),
newDivider(),
_buildItem("Only text Tip Dialog", () async {
TipDialogHelper.show(newTipDialog(
type: TipDialogType.NOTHING,
tip: "Do Not Repeat",
));
}),
newDivider(),
_buildItem("Custom Icon Tip Dialog", () async {
TipDialogHelper.show(newTipDialog.customIcon(
icon: newIcon(
Icons.file_download,
color: Colors.white,
size: 30.0,
textDirection: TextDirection.ltr,
),
tip: "Download",
));
}),
newDivider(),
_buildItem("Custom Body Tip Dialog", () async {
TipDialogHelper.show(newTipDialog.builder(
bodyBuilder: (context) {
returnnewContainer(
width: 120.0,
height: 90.0,
alignment: Alignment.center,
child: newText(
"Custom",
style: newTextStyle(color: Colors.white),
/// if TipDialogContainer are outside of MaterialApp,/// here is a must to set
textDirection: TextDirection.ltr,
),
);
},
color: Colors.blue.withAlpha(150),
));
}),
newDivider(),
]));
}
Use a custom widget when using [TipDialogContainer] globally, there may be appear some unexpected errors.
such as Text or Icon, will appear similar to the following error.
No Directionality widget found.
Just set TextDirection just fine. See the custom Widget in the example for details.
5. Default Dialog Type
enumTipDialogType { NOTHING, LOADING, SUCCESS, FAIL, INFO }
NOTHING:noiconLOADING:havealoadingiconSUCCESS:haveasuccessiconFAIL:haveafailiconINFO:haveainfoiconCUSTOM:customtipdialogtype,justasign,donothing
6. TipDialogHelper Method
/// tipDialog: Need to display the widget////// isAutoDismiss: decide whether to disappear automatically, default is true/// if true, the dialog will not automatically disappear/// otherwise, the dialog will automatically disappear after the [Duration] set by [TipDialogContainer]voidshow(Widget tipDialog, {bool isAutoDismiss: true});
/// dismiss dialogvoiddismiss();
/// show info dialogvoidinfo(String tip);
/// show fail dialogvoidfail(String errMsg);
/// show success dialogvoidsuccess(String success);
/// show loading dialogvoidloading(String loadingTip);
See the example directory for more details.
7. Change log
[4.0.0]
migrating to null safety
[3.1.0]
add outside touchable features
[3.0.0]
fix performance issues
easier way to call
[2.1.0]
add TipDialogHelper and deprecated TipDialogConnector