You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hyzp_ybqx/lib/components/customDialogFaceReg.dart

144 lines
5.3 KiB
Dart

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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: <Widget>[
Padding(
padding: EdgeInsets.fromLTRB(10, 10, 10, 0),
child: Stack(
children: <Widget>[
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: <Widget>[
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);
},
);
}
}