Flutter自定义对话框插件smart_alert_dialog的使用
Flutter自定义对话框插件smart_alert_dialog的使用
简介
smart_alert_dialog
是一个用于Flutter应用程序的插件,它根据平台自动选择合适的样式来显示对话框:对于iOS设备使用Cupertino风格,对于Android设备则采用Material风格。这使得开发者可以轻松创建与原生应用一致的用户体验。
版本信息
对话框展示
Android
可取消的对话框
确认/取消对话框
iOS
可取消的对话框
确认/取消对话框
注意: 大部分新问题调试的支持依赖于开源社区。
属性介绍
属性名 | 类型 | 描述 | 是否必须 | 默认值 |
---|---|---|---|---|
title |
String | 设置对话框标题 | 是 | - |
message |
String | 设置对话框内容描述 | 是 | - |
onConfirmPressed |
Function() | 点击确认按钮时调用的函数。如果不设置,将显示可取消的对话框。 | 否 | null |
onCancelPressed |
Function() | 点击取消按钮时调用的函数。 | 否 | 关闭对话框 |
text |
AlertDialogText | 自定义按钮文本 | 否 | AlertDialogText() |
style |
AlertDialogStyle | 自定义文本样式 | 否 | AlertDialogStyle() |
AlertDialogText
confirm
: 确认按钮文本,默认为"Yes"cancel
: 取消按钮文本,默认为"No"dismiss
: 关闭按钮文本,默认为"Ok"
AlertDialogStyle
confirm
: 确认按钮文本样式cancel
: 取消按钮文本样式dismiss
: 关闭按钮文本样式title
: 标题文本样式message
: 内容描述文本样式
示例代码
以下是一个完整的示例demo,展示了如何使用smart_alert_dialog
:
import 'package:flutter/material.dart';
import 'package:smart_alert_dialog/models/alert_dialog_text.dart';
import 'package:smart_alert_dialog/smart_alert_dialog.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
void _showYesNoAlert(BuildContext context) {
showDialog(
context: context,
builder: (_) => SmartAlertDialog(
title: "你喜欢这个库吗?",
text: AlertDialogText(confirm: "是", cancel: "否"),
message:
"你认为我的库很棒并且想要尝试一下吗?\n\n提示:欢迎提交PR以改进它 :)",
onConfirmPressed: () {
print("用户选择了确认");
Navigator.of(context).pop(); // 关闭对话框
},
onCancelPressed: () {
print("用户选择了取消");
Navigator.of(context).pop(); // 关闭对话框
},
),
);
}
void _showDismissableAlert(BuildContext context) {
showDialog(
context: context,
builder: (_) => SmartAlertDialog(
title: "这是一个可关闭的对话框!",
text: AlertDialogText(dismiss: "确定"),
message:
"嘿,你可以直接关闭这个对话框。另外,不要再点击那个按钮了。你已经被提醒过了!",
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: SafeArea(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
MaterialButton(
child: Text(
"发送一个可关闭的对话框",
style: TextStyle(color: Colors.white, fontSize: 16),
),
onPressed: () => _showDismissableAlert(context),
color: Colors.blue,
),
MaterialButton(
child: Text(
"发送一个确认/取消对话框",
style: TextStyle(color: Colors.white, fontSize: 16),
),
onPressed: () => _showYesNoAlert(context),
color: Colors.green,
),
],
),
),
),
);
}
}
待办事项
- [x] 添加
cancelTextColor
- 在AlertDialogStyle
中,检查style
属性 - [x] 添加
confirmTextColor
- 在AlertDialogStyle
中,检查style
属性 - [x] 添加
dismissText
- 在AlertDialogText
中,检查text
属性 - [x] 添加
dismissTextColor
- 在AlertDialogStyle
中,检查style
属性 - [ ] 创建平板电脑和Web的设计
- [ ] 为每个组件添加测试
许可证
参见 LICENSE.md
如果有任何问题或不清楚的地方,请随时提出问题。
更多关于Flutter自定义对话框插件smart_alert_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter自定义对话框插件smart_alert_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成和使用smart_alert_dialog
插件的示例代码。smart_alert_dialog
是一个用于创建自定义对话框的Flutter插件。
1. 添加依赖
首先,你需要在pubspec.yaml
文件中添加smart_alert_dialog
依赖:
dependencies:
flutter:
sdk: flutter
smart_alert_dialog: ^2.0.13 # 请注意版本号,这里用的是2.0.13,实际使用时请检查最新版本
然后运行flutter pub get
来安装依赖。
2. 导入插件
在你需要使用对话框的Dart文件中导入smart_alert_dialog
:
import 'package:smart_alert_dialog/smart_alert_dialog.dart';
3. 使用SmartAlertDialog
下面是一个简单的示例,展示如何使用SmartAlertDialog
来创建一个自定义对话框:
import 'package:flutter/material.dart';
import 'package:smart_alert_dialog/smart_alert_dialog.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Smart AlertDialog Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
void showCustomDialog() {
SmartDialog.show(
context,
title: 'Custom Dialog',
content: Text('This is a custom dialog created using smart_alert_dialog plugin.'),
widgetButtons: [
DialogButton(
child: Text('Cancel'),
color: Colors.red,
onPressed: () => SmartDialog.dismiss(context),
width: 120,
),
DialogButton(
child: Text('OK'),
color: Colors.blue,
onPressed: () {
SmartDialog.dismiss(context);
// Add your OK button logic here
},
width: 120,
),
],
animationType: DialogAnimationType.TOP_TO_BOTTOM,
width: double.infinity,
borderRadius: 12,
backgroundBlur: 5,
backgroundColor: Colors.white.withOpacity(0.9),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Smart AlertDialog Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: showCustomDialog,
child: Text('Show Dialog'),
),
),
);
}
}
4. 运行应用
将上述代码保存并运行你的Flutter应用。点击按钮后,你应该会看到一个自定义的对话框弹出,其中包括标题、内容以及两个按钮(取消和确定)。
总结
通过上述步骤,你已经学会了如何在Flutter项目中集成和使用smart_alert_dialog
插件来创建自定义对话框。smart_alert_dialog
提供了丰富的配置选项,你可以根据需要进一步自定义对话框的外观和行为。