自定义弹窗

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("提示title"), ), Align( alignment: .centerRight, child: InkWell(//他包裹的都能点击 child: Icon(Icons.close), onTap: onTap, ), ), ], ), ), Divider(), Container( padding: EdgeInsets.all(10), width: .infinity, 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);
},);
});
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容