You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.3 KiB
92 lines
2.3 KiB
3 years ago
|
import 'package:flutter/cupertino.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
import 'package:get/get.dart';
|
||
|
import 'package:signature/signature.dart';
|
||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||
|
import 'package:velocity_x/velocity_x.dart';
|
||
|
|
||
|
class SignNameBoard extends StatefulWidget {
|
||
|
static Future defalutBoard() async {
|
||
|
SignatureController _signatureController = SignatureController(
|
||
|
penColor: Colors.black,
|
||
|
penStrokeWidth: 5.w,
|
||
|
exportBackgroundColor: Colors.white,
|
||
|
);
|
||
|
return await navigator!.push(
|
||
|
PageRouteBuilder(
|
||
|
fullscreenDialog: true,
|
||
|
opaque: false,
|
||
|
pageBuilder: (context, animation, sAnimation) {
|
||
|
return FadeTransition(
|
||
|
opacity: animation,
|
||
|
child: SignNameBoard(
|
||
|
signatureController: _signatureController,
|
||
|
),
|
||
|
);
|
||
|
},
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
final SignatureController signatureController;
|
||
|
|
||
|
SignNameBoard({Key? key, required this.signatureController})
|
||
|
: super(key: key);
|
||
|
|
||
|
@override
|
||
|
_SignNameBoardState createState() => _SignNameBoardState();
|
||
|
}
|
||
|
|
||
|
class _SignNameBoardState extends State<SignNameBoard> {
|
||
|
@override
|
||
|
void dispose() {
|
||
|
widget.signatureController.dispose();
|
||
|
super.dispose();
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
Signature signature = Signature(
|
||
|
backgroundColor: Colors.white,
|
||
|
controller: widget.signatureController,
|
||
|
width: double.infinity,
|
||
|
height: 1000.w,
|
||
|
);
|
||
|
IconButton finishButton = IconButton(
|
||
|
onPressed: () {
|
||
|
Get.back(result: widget.signatureController.toPngBytes());
|
||
|
},
|
||
|
icon: Icon(
|
||
|
CupertinoIcons.checkmark_alt_circle,
|
||
|
size: 100.w,
|
||
|
),
|
||
|
);
|
||
|
IconButton clearButton = IconButton(
|
||
|
onPressed: () {
|
||
|
widget.signatureController.clear();
|
||
|
setState(() {});
|
||
|
},
|
||
|
icon: Icon(
|
||
|
CupertinoIcons.clear_circled,
|
||
|
size: 100.w,
|
||
|
),
|
||
|
);
|
||
|
return Center(
|
||
|
child: Column(
|
||
|
children: [
|
||
|
signature,
|
||
|
200.w.heightBox,
|
||
|
Material(
|
||
|
child: Row(
|
||
|
children: [
|
||
|
finishButton.expand(),
|
||
|
clearButton.expand(),
|
||
|
],
|
||
|
),
|
||
|
),
|
||
|
],
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|