import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/src/size_extension.dart'; import 'package:get/get.dart'; import 'package:get/get_core/src/get_main.dart'; import 'package:install_plugin/install_plugin.dart'; import 'package:path_provider/path_provider.dart'; import 'package:wgshare/utils/color_util.dart'; import 'package:wgshare/utils/toast_utils.dart'; import 'package:wgshare/view/upgrade/util/load_file_cancel_request.dart'; publicDialog(BuildContext context, {String title = "提示", required String describe, btnWidth = 116.0, btnHeight = 42.0, required String leftBtnStr, required String rightBtnStr, bool hideCancelBtn = false, required Function leftBtnCallback, required Function rightBtnCallback}) { showDialog( context: context, barrierDismissible: hideCancelBtn, builder: (_) => PopScope( canPop: hideCancelBtn, child: HintDialog(title, describe, btnWidth, btnHeight, leftBtnStr, rightBtnStr, hideCancelBtn,leftBtnCallback,rightBtnCallback), )); } class HintDialog extends StatefulWidget { final String title; //标题 final String describe; //描述 final double btnWidth; //按钮宽度 final double btnHeight; //按钮高度 final String leftBtnStr; // 左侧按钮内容 final String rightBtnStr; //右侧按钮内容 final bool hideCancelBtn; //是否隐藏取消btn(实际用途为是否可以点击空白和返回键关闭) final Function leftBtnCallback; final Function rightBtnCallback; HintDialog( this.title, this.describe, this.btnWidth, this.btnHeight, this.leftBtnStr, this.rightBtnStr, this.hideCancelBtn, this.leftBtnCallback, this.rightBtnCallback); @override State createState() { return HintDialogState(); } } class HintDialogState extends State { @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return Center( child: Container( height: 250.h, margin: const EdgeInsets.only(left: 40, right: 40), padding: const EdgeInsets.only(top: 20, bottom: 20, left: 12, right: 12), decoration: BoxDecoration( color: const Color.fromRGBO(255, 255, 255, 1), borderRadius: BorderRadius.circular(8), ), child: _contentStyle(), ), ); } ///内容区域样式 _contentStyle() { return Column( children: [ _title(), Expanded( child: _hintMsg(), ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ GestureDetector( child: Container( width: widget.btnWidth, height: widget.btnHeight, decoration: const BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(99)), color: ColorUtil.Color_230_230_230, ), margin: const EdgeInsets.only(top: 12, left: 12), alignment: Alignment.center, child: Text( widget.leftBtnStr, style: TextStyle( fontSize: 14.sp, color: ColorUtil.Color_255_255_255), ), ), onTap: () { Get.back(); widget.leftBtnCallback(); }, ), GestureDetector( child: Container( width: widget.btnWidth, height: widget.btnHeight, decoration: const BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(99)), color: ColorUtil.Color_85_117_242, ), margin: const EdgeInsets.only(top: 12, right: 12), alignment: Alignment.center, child: Text( widget.rightBtnStr, style: TextStyle( fontSize: 14.sp, color: ColorUtil.Color_255_255_255), ), ), onTap: () { Get.back(); widget.rightBtnCallback(); }, ) ], ) ], ); } ///提示标题布局 _title() { return Container( alignment: Alignment.center, margin: const EdgeInsets.only(bottom: 12), child: Text(widget.title, style: TextStyle( fontSize: 16.sp, color: ColorUtil.Color_85_117_242, fontWeight: FontWeight.w600, decoration: TextDecoration.none)), ); } ///提示信息布局 _hintMsg() { return SingleChildScrollView( child: Container( alignment: Alignment.topLeft, margin: const EdgeInsets.only(left: 8, right: 8), child: Text(widget.describe, style: const TextStyle( fontSize: 14, color: ColorUtil.Color_89_88_88, decoration: TextDecoration.none, height: 1.4)), ), ); } }