Flutter紧凑对话框插件flutter_compact_dialog的使用
Flutter紧凑对话框插件flutter_compact_dialog的使用
安装与使用
在您的pubspec.yaml
文件中添加flutter_compact_dialog
作为依赖项:
dependencies:
flutter_compact_dialog: <当前版本>
在Dart文件中导入CompactDialog
:
import 'package:flutter_compact_dialog/compact_dialog.dart';
示例
alert(警告)
// 弹出一个警告对话框
CompactDialog.alert(
context: context, // 当前上下文
title: '信息', // 对话框标题
body: '这是一个示例。', // 对话框内容
iconData: Icons.info, // 图标
iconColor: Colors.blue, // 图标颜色
primaryFunction: () { // 确定按钮点击事件
Navigator.of(context).pop(); // 关闭对话框
},
);
confirm(确认)
// 弹出一个确认对话框
CompactDialog.confirm(
context: context, // 当前上下文
title: '警告', // 对话框标题
body: '这是一个示例。你想运行它吗?', // 对话框内容
iconData: Icons.warning, // 图标
iconColor: Colors.yellow, // 图标颜色
barrierDismissible: false, // 是否可以通过点击背景关闭对话框
primaryFunction: () { // 确定按钮点击事件
Navigator.of(context).pop(); // 关闭对话框
},
secondaryFunction: () { // 取消按钮点击事件
Navigator.of(context).pop(); // 关闭对话框
},
);
progress(进度条)
// 弹出一个进度条对话框
CompactDialog.progress(
context: context, // 当前上下文
body: '加载中...', // 对话框内容
isCenterBody: true, // 内容是否居中
);
// 延迟3秒后关闭对话框
Future.delayed(Duration(milliseconds: 3000)).then(
(_) => Navigator.of(context).pop(), // 关闭对话框
);
完整示例
import 'package:flutter/material.dart';
import 'package:flutter_compact_dialog/compact_dialog.dart';
void main() {
runApp(
MaterialApp(
theme: ThemeData(
brightness: Brightness.light,
),
home: MyApp(),
),
);
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('紧凑对话框示例'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
CompactDialog.alert(
context: context,
title: '信息',
body: '这是一个示例。',
iconData: Icons.info,
iconColor: Colors.blue,
barrierDismissible: false,
primaryFunction: () {
Navigator.of(context).pop();
},
);
},
child: Text('弹出警告对话框'),
),
ElevatedButton(
onPressed: () {
CompactDialog.alert(
context: context,
title: '信息',
body: '这是一个示例。',
iconData: Icons.info,
iconColor: Colors.blue,
barrierDismissible: false,
primaryButtonText: '确定',
primaryButtonRadius: 20,
primaryFunction: () {
Navigator.of(context).pop();
},
radius: 40,
);
},
child: Text('弹出警告对话框 2'),
),
ElevatedButton(
onPressed: () {
CompactDialog.confirm(
context: context,
title: '警告',
body: '这是一个示例。你想运行它吗?',
iconData: Icons.warning,
iconColor: Colors.yellow,
barrierDismissible: false,
primaryFunction: () {
Navigator.of(context).pop();
},
secondaryFunction: () {
Navigator.of(context).pop();
},
);
},
child: Text('弹出确认对话框'),
),
ElevatedButton(
onPressed: () {
CompactDialog.confirm(
context: context,
title: '删除',
body: '你确定要删除吗?',
iconData: Icons.close,
iconColor: Colors.red,
barrierDismissible: false,
primaryButtonText: '删除',
primaryButtonColor: Colors.red,
primaryFunction: () {
Navigator.of(context).pop();
},
secondaryFunction: () {
Navigator.of(context).pop();
},
);
},
child: Text('弹出确认对话框 2'),
),
ElevatedButton(
onPressed: () {
CompactDialog.progress(
context: context,
body: '加载中...',
isCenterBody: true,
);
Future.delayed(Duration(milliseconds: 3000)).then(
(_) => Navigator.of(context).pop(),
);
},
child: Text('弹出进度条对话框'),
),
],
),
),
);
}
}
更多关于Flutter紧凑对话框插件flutter_compact_dialog的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter紧凑对话框插件flutter_compact_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_compact_dialog
是一个用于在 Flutter 应用中显示紧凑对话框的插件。它可以帮助你快速创建简洁、轻量级的对话框,适用于需要快速提示用户或获取简单输入的场景。
安装
首先,你需要在 pubspec.yaml
文件中添加 flutter_compact_dialog
依赖:
dependencies:
flutter:
sdk: flutter
flutter_compact_dialog: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
基本用法
1. 显示简单的对话框
你可以使用 CompactDialog.show
方法来显示一个简单的对话框:
import 'package:flutter/material.dart';
import 'package:flutter_compact_dialog/flutter_compact_dialog.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Compact Dialog Example'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
CompactDialog.show(
context: context,
title: '提示',
message: '这是一个简单的紧凑对话框',
positiveText: '确定',
onPositivePressed: () {
print('确定按钮被点击');
},
);
},
child: Text('显示对话框'),
),
),
),
);
}
}
void main() => runApp(MyApp());
2. 带取消按钮的对话框
你可以通过设置 negativeText
和 onNegativePressed
来添加取消按钮:
CompactDialog.show(
context: context,
title: '提示',
message: '你确定要删除这个项目吗?',
positiveText: '删除',
negativeText: '取消',
onPositivePressed: () {
print('删除按钮被点击');
},
onNegativePressed: () {
print('取消按钮被点击');
},
);
3. 自定义对话框内容
如果你需要自定义对话框的内容,可以使用 CompactDialog.custom
方法:
CompactDialog.custom(
context: context,
title: '自定义对话框',
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text('这是一个自定义内容的对话框'),
TextField(
decoration: InputDecoration(labelText: '输入框'),
),
],
),
positiveText: '确定',
onPositivePressed: () {
print('确定按钮被点击');
},
);