flutter 提示框,有确认取消的按钮的弹出框【组件】

组件:

class CustomAlertDialog extends StatelessWidget {
  final String? title;
  final String? content;
  final VoidCallback? onCancel;
  final VoidCallback? onConfirm;
  final textarea;

  const CustomAlertDialog({
    this.title,
    this.content,
    this.onCancel,
    this.onConfirm,
    this.textarea,
  });

  @override
  Widget build(BuildContext context) {
    return Dialog(
      shape: RoundedRectangleBorder(
        borderRadius: BorderRadius.circular(4.0),
      ),
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          if (title != null)
            Padding(
              padding: EdgeInsets.all(8.0),
              child: Text(title!, style: CustomTextStyle.text18),
            ),
          if (content != null)
            Padding(
              padding: EdgeInsets.symmetric(horizontal: 16.0),
              child: Text(content!,
                  textAlign: TextAlign.center, style: CustomTextStyle.text14_1),
            ),
          textarea,
          SizedBox(height: 24.0),
          Row(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: [
              if (onCancel != null)
                Container(
                  width: 120,
                  height: 44,
                  decoration: BoxDecoration(
                      borderRadius: BorderRadius.circular(4),
                      color: Color(0xFFF7F7F7)),
                  child: TextButton(
                    onPressed: onCancel,
                    child: Text('取消', style: CustomTextStyle.text16_5),
                  ),
                ),
              if (onConfirm != null)
                Container(
                  width: 120,
                  height: 44,
                  alignment: Alignment.center,
                  decoration:  BoxDecorationLoginStyle.primary0Box
                      ,
                  child: TextButton(
                    onPressed: onConfirm,
                    child: Text('确定', style: CustomTextStyle.text16_6),
                  ),
                ),
            ],
          ),
          SizedBox(height: 16.0),
        ],
      ),
    );
  }
}

父组件用法:

父组件用法
showDialog(
  context: context,
  builder: (context) {
    return CustomAlertDialog(
      title: '提示',
      content: '确定要删除吗?',
      onCancel: () {
        // 取消按钮点击事件
        Navigator.pop(context);
      },
      onConfirm: () {
        // 确定按钮点击事件
        // 执行删除操作
        Navigator.pop(context);
      },
    );
  },
);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flutter大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值