Files
kuaishai2/lib/shared/widgets/common_dialog.dart
Developer 5d28bf631b chore(project): 初始化项目基础配置文件
- 添加 CodeGraph、Android 和通用 gitignore 配置
- 创建项目元数据文件跟踪 Flutter 项目属性
- 添加 Codex AI 指导文档 AGENTS.md 说明项目架构
- 配置代码分析选项 analysis_options.yaml
- 设置 Android 应用清单权限和 Kiosk 模式配置
- 实现中英文国际化支持 AppLocalizations
- 配置 GoRouter 应用路由导航
- 创建明亮工业控制风格的主题配置 AppTheme
2026-06-04 11:19:44 +08:00

93 lines
2.4 KiB
Dart

import 'package:flutter/material.dart';
/// 确认对话框组件
class CommonDialog {
/// 显示确认对话框
static Future<bool?> showConfirm({
required BuildContext context,
required String title,
required String content,
String confirmText = '确认',
String cancelText = '取消',
bool isDestructive = false,
}) {
return showDialog<bool>(
context: context,
builder: (context) => AlertDialog(
title: Text(title),
content: Text(content),
actions: [
TextButton(
onPressed: () => Navigator.pop(context, false),
child: Text(cancelText),
),
ElevatedButton(
onPressed: () => Navigator.pop(context, true),
style: ElevatedButton.styleFrom(
backgroundColor: isDestructive ? Colors.red : null,
),
child: Text(confirmText),
),
],
),
);
}
/// 显示信息对话框
static Future<void> showInfo({
required BuildContext context,
required String title,
required String content,
String confirmText = '确认',
}) {
return showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text(title),
content: Text(content),
actions: [
ElevatedButton(
onPressed: () => Navigator.pop(context),
child: Text(confirmText),
),
],
),
);
}
/// 显示输入对话框
static Future<String?> showInput({
required BuildContext context,
required String title,
String? hintText,
String? initialValue,
String confirmText = '确认',
String cancelText = '取消',
}) {
final controller = TextEditingController(text: initialValue);
return showDialog<String>(
context: context,
builder: (context) => AlertDialog(
title: Text(title),
content: TextField(
decoration: InputDecoration(
hintText: hintText,
border: const OutlineInputBorder(),
),
controller: controller,
),
actions: [
TextButton(
onPressed: () => Navigator.pop(context),
child: Text(cancelText),
),
ElevatedButton(
onPressed: () => Navigator.pop(context, controller.text),
child: Text(confirmText),
),
],
),
);
}
}