flutter 自定义弹窗组件

iOS风格中间弹窗

//这里是封装弹窗,组件化,
class FaceStyleShowDialog{
//这是两个按钮的弹窗
  static showCupertinoAlertDialogTwo(BuildContext context,{Widget ?title,Widget ?content,
    Function ? callback, Function ? confirm,}) {
    showDialog(
        context: context,
        barrierDismissible: false,
        builder: (BuildContext context) {
          return CupertinoAlertDialog(
            title: Text("permission_request".tr),
            content: content,
            actions: [
                CupertinoDialogAction(
                  child: Text("cancel".tr),
                  onPressed: () {
                    if(confirm != null){
                      confirm();
                    }
                    Get.back();
                  },
                ),

              CupertinoDialogAction(
                child: Text("ok".tr),
                onPressed: () {
                  if(callback != null){
                    callback();
                  }
                  Get.back();
                },
              ),
            ],
          );
        });
  }

//这是两一个按钮的弹窗
  static showCupertinoAlertDialogOne(BuildContext context,{Widget ?title,Widget ?content,
    Function ? callback, }) {
    showDialog(
        context: context,
        builder: (BuildContext context) {
          return CupertinoAlertDialog(
            title: title,
            content: content,
            actions: [
              CupertinoDialogAction(
                child: Text("ok".tr),
                onPressed: () {
                  if(callback != null){
                    callback();
                  }
                  Get.back();
                },
              ),
            ],
          );
        });
  }


}



非iOS弹窗

//rpx是我适配的单位,
  _showCallPhoneDialog() {
    showDialog(
        context: context,
        barrierDismissible: true,
        builder: (BuildContext context) {
          return Material(
            type: MaterialType.transparency,
            child: Center(
              child: GestureDetector(
                behavior: HitTestBehavior.translucent,
                onTap: () {
                  Navigator.pop(context);
                  Get.off(() => const NoConsumption());
                },
                child: Container(
                    padding: EdgeInsets.fromLTRB(30.rpx, 0.rpx, 30.rpx, 0.rpx),
                    width: 570.rpx,
                    height: 200.rpx,
                    alignment: Alignment.center,
                    decoration: BoxDecoration(
                        color: Colors.white,
                        borderRadius: BorderRadius.circular(20.rpx)),

                    // color: Colors.red,
                    child: ShaderMask(
                      shaderCallback: (Rect bounds) {
                        return const LinearGradient(
                          colors: <Color>[
                            Colors.blue,
                            Color(0xff68CEFA),
                            Colors.red,
                          ],
                          tileMode: TileMode.mirror,
                        ).createShader(bounds);
                      },
                      blendMode: BlendMode.srcATop,
                      child: Center(
                        child: Text(
                          "Free_times_have_been_used_up".tr,
                          style: TextStyle(
                              color: const Color(0xff2F364E),
                              fontSize: 30.rpx,
                              fontWeight: FontWeight.w700),
                        ),
                      ),
                    )),
              ),
            ),
          );
        });
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值