Flutter现代化对话框插件modern_dialog的使用
Flutter现代化对话框插件modern_dialog的使用
modern_dialog
是一个用于Flutter应用程序的现代化自定义对话框插件,它具有简单实现、适应Android和iOS平台、多种现成布局以及完全自定义的特点。
🎯 特性
- 简单实现
- 适应Android & iOS
- 各种现成可用的布局
- 完全自定义
📦 使用
Standard Dialog 标准对话框
标准对话框是最基本的一种对话框,通常包含标题、内容和一个确认按钮。以下是创建标准对话框的示例:
ModernDialog.showStandard(
context,
title: "Title",
content: const Text("description"),
buttonTitle: "Save",
onAccept: () => print("do sometime"),
);
更多自定义选项
你可以通过添加更多参数来自定义标准对话框:
ModernDialog.showStandard(
context,
icon: const Icon(Icons.phone_android),
mainButtonColor: Colors.blue,
cancelButtonColor: Colors.red,
onCancel: (){},
cancelButtonTitle: "",
dismissibleDialog: true,
backgroundColor: Colors.orange,
disableTintColor: true,
shouldCloseOnMainButton: true,
title: "Title",
content: const Text("description"),
buttonTitle: "Save",
onAccept: () => print("do sometime"),
);
Info Dialog 提示对话框
提示对话框是一种只有同意按钮的对话框,适用于提供信息或提示。以下是如何创建提示对话框的示例:
ModernDialog.showInfo(
context,
content: const Text("You need to know this!"),
);
更多自定义选项
你可以通过添加更多参数来自定义提示对话框:
ModernDialog.showInfo(
context,
title: "Title",
buttonTitle: "Save",
mainButtonColor: Colors.red,
dismissibleDialog: true,
backgroundColor: Colors.grey,
disableTintColor: true,
content: const Text("You need to know this!"),
);
Trailing Action Dialog 带尾随动作的对话框
当需要一个带有两个重要操作按钮的对话框时,可以使用带尾随动作的对话框。以下是如何创建带尾随动作的对话框的示例:
ModernDialog.showTrailingAction(
context,
content: const Text("This a dialog showing a trailing action button"),
buttonTitle: 'Save',
onAccept: () => print("do sometime"),
trailingButtonTitle: "Open Settings",
onTrailingPressed: () => print("do sometime"),
);
更多自定义选项
你可以通过添加更多参数来自定义带尾随动作的对话框:
ModernDialog.showTrailingAction(
context,
title: "Title",
mainButtonColor: Colors.red,
trailingButtonColor: Colors.red,
dismissibleDialog: true,
backgroundColor: Colors.grey,
disableTintColor: true,
content: const Text("This a dialog showing a trailing action button"),
buttonTitle: 'Save',
onAccept: () => print("do sometime"),
trailingButtonTitle: "Open Settings",
onTrailingPressed: () => print("do sometime"),
);
Vertical Dialog 垂直对话框
垂直对话框是按钮垂直排列的对话框。你可以通过DialogButton
类来添加自定义按钮。以下是如何创建垂直对话框的示例:
ModernDialog.showVerticalDialog(
context,
content: const Text("description"),
buttons: [
DialogButton(
title: "Discard",
onPressed: () => print("do sometime"),
color: Colors.red,
),
DialogButton(
title: "Allow all changes",
onPressed: () => print("do sometime"),
),
],
);
更多自定义选项
你可以通过添加更多参数来自定义垂直对话框:
ModernDialog.showVerticalDialog(
context,
icon: const Icon(Icons.ac_unit),
title: "Title",
dismissibleDialog: true,
backgroundColor: Colors.grey,
disableTintColor: true,
content: const Text("description"),
buttons: [
DialogButton(
title: "Discard",
onPressed: () => print("do sometime"),
color: Colors.red,
),
DialogButton(
title: "Allow all changes",
onPressed: () => print("do sometime"),
),
],
);
Custom Dialog 自定义对话框
自定义对话框允许你添加任何自定义的小部件。以下是如何创建自定义对话框的示例:
ModernDialog.showCustom(
context,
view: const Text("Add any view you would like"),
);
更多自定义选项
你可以通过添加更多参数来自定义自定义对话框:
ModernDialog.showCustom(
context,
borderRadius: 70,
disablePadding: true,
dismissibleDialog: true,
backgroundColor: Colors.grey,
disableTintColor: true,
view: const Text("Add any view you would like"),
);
🧱 参数说明
名称 | 描述 | 数据类型 | 默认值 |
---|---|---|---|
icon | 显示在顶部中心的图标 | Widget | - |
title | 对话框的标题 | String | - |
content | 显示对话框内容的小部件 | Widget | - |
buttonTitle | 主按钮的文本 | String | - |
onAccept | 处理主按钮点击事件的函数 | Function() | - |
onCancel | 关闭对话框时执行的操作 | Function() | - |
cancelButtonTitle | 取消按钮的文本 | String | “Cancel” |
cancelButtonColor | 取消按钮的颜色 | Color | - |
mainButtonColor | 主按钮的颜色 | Color | ColorScheme.primary |
shouldCloseOnMainButton | 按下主按钮时关闭对话框 | bool | true |
dismissibleDialog | 允许对话框可取消 | bool | true |
backgroundColor | 对话框的背景颜色(仅限Android) | Color | white |
disableTintColor | 禁用应用于背景颜色的颜色色调(仅限Android) | bool | false |
Vertical Dialog 参数
名称 | 描述 | 数据类型 | 默认值 |
---|---|---|---|
buttons | 垂直对话框的自定义按钮列表 | List<DialogButton> | - |
Trailing Dialog 参数
名称 | 描述 | 数据类型 | 默认值 |
---|---|---|---|
trailingButtonTitle | 尾随按钮的文本(次要按钮) | String | - |
onTrailingPressed | 处理尾随按钮点击事件的函数 | Function() | - |
trailingButtonColor | 尾随按钮的颜色 | Color | - |
Custom Dialog 参数
名称 | 描述 | 数据类型 | 默认值 |
---|---|---|---|
view | 自定义对话框的小部件 | Widget | - |
borderRadius | 覆盖默认对话框填充 | double | - |
disablePadding | 禁用对话框的默认填充 | bool | false |
backgroundColor | 对话框的背景颜色(仅限Android) | Color | white |
disableTintColor | 禁用应用于背景颜色的颜色色调(仅限Android) | bool | false |
示例代码
以下是完整的示例代码,展示了如何在Flutter应用程序中使用modern_dialog
插件:
import 'package:flutter/material.dart';
import 'package:modern_dialog/dialogs/vertical.dart';
import 'package:modern_dialog/modern_dialog.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
),
home: const HomePage(),
);
}
}
class HomePage extends StatelessWidget {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: const Text("Modern Dialog"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
ModernDialog.showStandard(
context,
title: "Title",
content: const Text("description"),
buttonTitle: "Save",
onAccept: () => print("do sometime"),
);
},
child: const Text("Standard Dialog"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
ModernDialog.showInfo(
context,
content: const Text("You need to know this!"),
);
},
child: const Text("Info Dialog"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
ModernDialog.showTrailingAction(
context,
content: const Text("This a dialog showing a trailing action button"),
buttonTitle: 'Save',
onAccept: () => print("do sometime"),
trailingButtonTitle: "Open Settings",
onTrailingPressed: () => print("do sometime"),
);
},
child: const Text("Trailing Action Dialog"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
ModernDialog.showVerticalDialog(
context,
content: const Text("Here you can add buttons horizontally"),
buttons: [
DialogButton(
title: "Discard",
onPressed: () => print("do sometime"),
color: Colors.red,
),
DialogButton(
title: "Allow all changes",
onPressed: () => print("do sometime"),
),
],
);
},
child: const Text("Vertical Dialog"),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
ModernDialog.showCustom(
context,
view: const Text("Add any view you would like"),
);
},
child: const Text("Custom Dialog"),
),
],
),
),
);
}
}
通过以上代码和说明,你应该能够轻松地在Flutter项目中集成并使用modern_dialog
插件来创建各种类型的现代化对话框。
更多关于Flutter现代化对话框插件modern_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter现代化对话框插件modern_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用modern_dialog
插件的示例代码。modern_dialog
是一个现代化的对话框插件,提供了多种美观且易用的对话框样式。
首先,确保你已经在pubspec.yaml
文件中添加了modern_dialog
依赖:
dependencies:
flutter:
sdk: flutter
modern_dialog: ^x.y.z # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
接下来是一个简单的示例,展示如何使用modern_dialog
来创建一个基本的对话框:
import 'package:flutter/material.dart';
import 'package:modern_dialog/modern_dialog.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Modern Dialog Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Modern Dialog Example'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
showModernDialog(
context: context,
title: 'This is a Title',
description: 'This is a description text.',
btnOkText: 'OK',
onPressed: () {
// 当点击OK按钮时执行的回调
print('OK button pressed');
},
// 你可以根据需要自定义更多参数,比如btnCancelText, btnCancelColor等
);
},
child: Text('Show Dialog'),
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个按钮。当点击按钮时,会显示一个使用modern_dialog
插件创建的对话框。对话框包含标题、描述文字和一个OK按钮。
showModernDialog
函数接受多个参数,允许你自定义对话框的各个方面。在上面的例子中,我们设置了标题(title
)、描述(description
)、OK按钮的文本(btnOkText
)以及点击OK按钮时的回调(onPressed
)。
你可以查阅modern_dialog
的官方文档以了解更多高级用法和自定义选项。例如,你可能想要添加取消按钮、自定义对话框的背景颜色或字体样式等。