87 lines
2.4 KiB
Dart
87 lines
2.4 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:ef/ef.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'my_dialog_controller.dart';
|
|
|
|
class MyDialog extends GetView<MyDialogController> {
|
|
final String message;
|
|
final int seconds;
|
|
final Color? textColor; // 可选参数
|
|
|
|
MyDialog({
|
|
required this.message,
|
|
required this.seconds,
|
|
this.textColor, // 可选参数的赋值
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
// 设置弹窗在2秒后自动关闭
|
|
Timer(Duration(seconds: seconds), () {
|
|
if (Navigator.canPop(context)) {
|
|
Navigator.of(context).pop();
|
|
}
|
|
});
|
|
|
|
return Dialog(
|
|
backgroundColor: Colors.transparent, // 使弹窗背景透明
|
|
elevation: 0, // 去除阴影
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(20),
|
|
),
|
|
child: ConstrainedBox(
|
|
constraints: BoxConstraints(
|
|
minWidth: 232,
|
|
maxHeight: 400,
|
|
minHeight: 47,
|
|
maxWidth: 400,
|
|
),
|
|
child: Opacity(
|
|
opacity: 1, // 设置容器的透明度为80%
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
// color: Color(0xFF182B7C),
|
|
color: Color(0xFFffebe9),
|
|
border: Border.all(
|
|
// color: Color(0xFFe60012), // 边框颜色
|
|
color: textColor ?? Color(0xFFe60012),
|
|
width: 1, // 边框宽度
|
|
),
|
|
borderRadius: BorderRadius.circular(4),
|
|
boxShadow: [
|
|
BoxShadow(
|
|
color: Colors.black26,
|
|
blurRadius: 10,
|
|
offset: Offset(0, 4),
|
|
),
|
|
],
|
|
),
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(4.0),
|
|
child: SingleChildScrollView(
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
SizedBox(height: 8),
|
|
Text(
|
|
message,
|
|
style: TextStyle(
|
|
fontSize: 13,
|
|
// color: Color(0xFFe60012), // 边框颜色
|
|
color: textColor ?? Color(0xFFe60012),
|
|
),
|
|
textAlign: TextAlign.center,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|