import 'package:flutter/material.dart';
class MyDialog extends Dialog{
final String title;
final String contentStr;
final Function()? onTap;//点击事件传递,类似block
const MyDialog({super.key, required this.title, required this.contentStr, required this.onTap});
@override
Widget build(BuildContext context) {
// TODO: implement build
return Material(
type: MaterialType.transparency,//背景透明
child: Center(
child:
Container(
width: 300,
height: 300,
color: Colors.white,
child: Column(
children: [
Padding(padding: EdgeInsets.all(5),child:
Stack(
children: [
Align(
alignment: .centerLeft,
child: Text("提示contentStr"),
)
],
),
),
),
);
}
}
ElevatedButton(
onPressed: () {
_myDialog();
},
child: Text("自定义dialog"),
)
void _myDialog(){//barrierDismissible:false,//表示点击灰色背景的时候是否消失弹出框
showDialog(context: context,barrierDismissible: false, builder: (context){
return MyDialog(title: '标题1', contentStr: '水电费是的', onTap: () {
print("关闭点击");
Navigator.pop(context);
},);
});
}