Flutter对话框管理插件flutter_androssy_dialogs的使用
Flutter对话框管理插件flutter_androssy_dialogs的使用
特性
- 提示消息对话框
- 可编辑对话框
- 加载对话框
- 消息对话框
- 消息通知栏
- 错误通知栏
- 警告通知栏
导入
import 'package:flutter_androssy_dialogs/dialogs.dart';
初始化自定义设置(可选)
void initDialogs() {
Dialogs.init(
alertDialogConfig: (context) =>
const AlertDialogConfig(
positiveButtonTextStyle: TextStyle(
color: Colors.orange,
fontWeight: FontWeight.bold,
fontSize: 18,
),
material: false,
),
messageDialogConfig: (context) =>
const MessageDialogConfig(
buttonTextStyle: TextStyle(
color: Colors.orange,
fontWeight: FontWeight.bold,
fontSize: 18,
),
material: false,
),
loadingDialogConfig: (context) =>
LoadingDialogConfig(
loader: Center(
child: Container(
width: 120,
height: 120,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(25),
),
child: const Center(
child: CircularProgressIndicator(),
),
),
),
material: false,
),
snackBarConfig: (context) =>
const SnackBarConfig(
messageStyle: TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 16,
),
),
errorSnackBarConfig: (context) =>
SnackBarConfig(
background: Colors.red.withOpacity(0.1),
messageStyle: const TextStyle(
color: Colors.red,
fontWeight: FontWeight.bold,
fontSize: 16,
),
),
warningSnackBarConfig: (context) =>
SnackBarConfig(
background: Colors.orange.withOpacity(0.1),
messageStyle: const TextStyle(
color: Colors.orange,
fontWeight: FontWeight.bold,
fontSize: 16,
),
),
);
}
示例
import 'package:flutter/material.dart';
import 'package:flutter_androssy_dialogs/dialogs.dart';
void main() {
Dialogs.init(
alertDialogConfig: (context) =>
const AlertDialogConfig(
positiveButtonTextStyle: TextStyle(
color: Colors.orange,
fontWeight: FontWeight.bold,
fontSize: 18,
),
material: false,
),
messageDialogConfig: (context) =>
const MessageDialogConfig(
buttonTextStyle: TextStyle(
color: Colors.orange,
fontWeight: FontWeight.bold,
fontSize: 18,
),
material: false,
),
loadingDialogConfig: (context) =>
LoadingDialogConfig(
loader: Center(
child: Container(
width: 120,
height: 120,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(25),
),
child: const Center(
child: CircularProgressIndicator(),
),
),
),
material: false,
),
snackBarConfig: (context) =>
const SnackBarConfig(
messageStyle: TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 16,
),
),
errorSnackBarConfig: (context) =>
SnackBarConfig(
background: Colors.red.withOpacity(0.1),
messageStyle: const TextStyle(
color: Colors.red,
fontWeight: FontWeight.bold,
fontSize: 16,
),
),
warningSnackBarConfig: (context) =>
SnackBarConfig(
background: Colors.orange.withOpacity(0.1),
messageStyle: const TextStyle(
color: Colors.orange,
fontWeight: FontWeight.bold,
fontSize: 16,
),
),
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: Container(
alignment: Alignment.center,
padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 50),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
ElevatedButton(
onPressed: () {
context.showAlert(
title: "这是一个标题!",
message: "这是一个警告消息",
);
},
child: const Text("显示警告对话框"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
context.showEditor(
hint: "写点东西...",
title: "这是一个标题!",
);
},
child: const Text("显示可编辑对话框"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
context.showLoader();
},
child: const Text("显示加载对话框"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
context.showMessage("这是一个消息", title: "成功!");
},
child: const Text("显示消息对话框"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
context.showSnackBar("这是一个通知栏消息!");
},
child: const Text("显示通知栏"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
context.showErrorSnackBar("这是一个错误通知栏消息!");
},
child: const Text("显示错误通知栏"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
context.showWarningSnackBar(
"这是一个警告通知栏消息!");
},
child: const Text("显示警告通知栏"),
),
],
),
),
);
}
}
更多关于Flutter对话框管理插件flutter_androssy_dialogs的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter对话框管理插件flutter_androssy_dialogs的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_androssy_dialogs
是一个用于管理 Flutter 应用中的对话框的插件。它提供了一种简单而灵活的方式来显示不同类型的对话框,如提示框、确认框、输入框等。以下是如何使用 flutter_androssy_dialogs
插件的简要指南。
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 flutter_androssy_dialogs
插件的依赖:
dependencies:
flutter:
sdk: flutter
flutter_androssy_dialogs: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入插件
在你的 Dart 文件中导入 flutter_androssy_dialogs
插件:
import 'package:flutter_androssy_dialogs/flutter_androssy_dialogs.dart';
3. 使用对话框
flutter_androssy_dialogs
提供了多种类型的对话框,以下是几个常见的用法示例。
3.1 显示提示框(Alert Dialog)
AndrossyDialogs.alert(
context,
title: "提示",
message: "这是一个提示框",
positiveText: "确定",
onPositive: () {
print("确定按钮被点击");
},
);
3.2 显示确认框(Confirm Dialog)
AndrossyDialogs.confirm(
context,
title: "确认",
message: "你确定要执行此操作吗?",
positiveText: "确定",
negativeText: "取消",
onPositive: () {
print("确定按钮被点击");
},
onNegative: () {
print("取消按钮被点击");
},
);
3.3 显示输入框(Input Dialog)
AndrossyDialogs.input(
context,
title: "输入",
hint: "请输入内容",
positiveText: "提交",
negativeText: "取消",
onPositive: (value) {
print("提交按钮被点击,输入内容为: $value");
},
onNegative: () {
print("取消按钮被点击");
},
);
3.4 显示进度对话框(Progress Dialog)
AndrossyDialogs.progress(
context,
title: "加载中",
message: "请稍候...",
);
// 关闭进度对话框
Navigator.pop(context);
4. 自定义对话框
flutter_androssy_dialogs
允许你通过传递自定义的 Widget
来创建完全自定义的对话框。
AndrossyDialogs.custom(
context,
builder: (context) {
return AlertDialog(
title: Text("自定义对话框"),
content: Text("这是一个完全自定义的对话框"),
actions: [
TextButton(
onPressed: () {
Navigator.pop(context);
},
child: Text("关闭"),
),
],
);
},
);