一个对话框队列,供您管理要在 Flutter 平台上显示的对话框
特点
- 支持按顺序弹出对话框
- 支持按优先级弹出对话框
- 支持在队列中去重对话框
- 支持暂停\恢复弹出操作
入门
安装
将以下行添加到您的应用模块的pubspec.yaml文件中。然后运行flutter pub get。
dependencies:
dialog_queue: ">=1.0.1"
...
用法
步骤 1:在您的MaterialApp中添加DialogQueueRouteObserver
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
navigatorObservers: [DialogQueueRouteObserver()],
);
}
}
步骤 2:将“showDialog”替换为DialogQueue.instance.addDialog
旧用法
showModalBottomSheet<T>(
context: context,
backgroundColor: Colors.white,
isScrollControlled: true,
isDismissible: false,
builder: (BuildContext context) {
return SafeArea(child: Text('Hello DialogQueue'));
},
);
新用法
DialogQueue.instance.addDialog(DialogQueueElement(() {
return showModalBottomSheet(
context: context,
backgroundColor: Colors.white,
isScrollControlled: true,
isDismissible: false,
builder: (BuildContext context) {
return SafeArea(child: Text('Hello DialogQueue'));
}
);
}, tag: tag, priority: priority, uniqueKey: uniqueKey));
其他用法
- 您可以随时暂停\恢复队列的弹出操作
DialogQueue.instance.resume();
DialogQueue.instance.pause();
- 如果您想在路由到PageB时中断队列,并在PageA弹出后恢复它,那么可以使用
DialogQueue.instance.pushNameThenResume(navigatorState, PageB);