import 'package:flutter/material.dart'; import 'package:flutter_drag_scale/core/drag_scale_widget.dart'; import 'dart:io'; //确认对话框 class CustomDialogFaceReg extends Dialog { String title; String username; String imagePath; Size imageSize; CustomDialogFaceReg( {@required this.username, @required this.imagePath, @required this.imageSize, this.title = ""}); @override Widget build(BuildContext context) { Size mediaSize = MediaQuery.of(context).size; return WillPopScope( child: Material( type: MaterialType.transparency, child: Container( padding: EdgeInsets.only(top: 45), alignment: Alignment(0, -1), color: Colors.black12, child: Container( // height: 260, // width: 300, height: mediaSize.height * 0.9, width: mediaSize.width * 0.98, //color: Colors.white, //Cannot provide both a color and a decoration decoration: BoxDecoration( color: Colors.white, border: Border.all(color: Colors.blue, width: 2.0), borderRadius: BorderRadius.all( Radius.circular(5), ), ), child: Column( children: [ Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 0), child: Stack( children: [ Align( alignment: Alignment.center, child: Text( title, style: TextStyle( fontSize: 20.0, ), ), ), Align( alignment: Alignment.centerRight, child: InkWell( child: Icon(Icons.close), onTap: () { Navigator.pop(context, false); }, ), ) ], ), ), Divider(), Container( padding: EdgeInsets.fromLTRB(20, 5, 20, 10), width: double.infinity, height: mediaSize.height * 0.1, child: SingleChildScrollView( child: RichText( text: TextSpan(children: [ TextSpan( text: '是否确定为用户 ', style: TextStyle(fontSize: 18.0, color: Colors.blue)), TextSpan( text: username, style: TextStyle( fontSize: 18.0, fontWeight: FontWeight.bold, color: Colors.red)), TextSpan( text: ' 注册或更新以下人脸图片?', style: TextStyle(fontSize: 18.0, color: Colors.blue)), ]), ), ), ), //SizedBox(height: 10), //480*720 Text('宽高:${imageSize.width}x${imageSize.height}', style: TextStyle(fontSize: 18)), SizedBox(height: 5), SingleChildScrollView( //滑动的方向 Axis.vertical为垂直方向滑动,Axis.horizontal 为水平方向 scrollDirection: Axis.vertical, reverse: false, padding: EdgeInsets.all(0.0), //滑动到底部回弹效果 physics: BouncingScrollPhysics(), child: Container( alignment: Alignment(0, 0), height: mediaSize.height * 0.52, width: mediaSize.width * 0.95, decoration: BoxDecoration( border: Border.all(color: Colors.orange, width: 1.0), borderRadius: BorderRadius.circular(5), ), //DragScaleContainer 插件只能放大,不能缩小到比原始尺寸小 child: DragScaleContainer( doubleTapStillScale: true, child: Image.file(File(imagePath), fit: BoxFit.fitHeight)), ), ), SizedBox(height: 10), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ RaisedButton( onPressed: () async { Navigator.pop(context, true); //关闭弹框,返回 true }, child: Text("确认"), ), RaisedButton( child: Text("取消"), onPressed: () async { Navigator.pop(context, false); //关闭弹框,返回 false }, ) ], ), ], ), ), ), ), onWillPop: () { // 屏蔽点击返回键的操作 Navigator.pop(context, false); }, ); } }