signature_page.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import 'package:flutter/material.dart';
  2. import 'package:liftmanager/res/colors.dart';
  3. import 'package:liftmanager/routers/fluro_navigator.dart';
  4. import 'package:liftmanager/utils/theme_utils.dart';
  5. import 'package:liftmanager/utils/toast.dart';
  6. import 'package:liftmanager/widgets/app_bar.dart';
  7. import 'package:liftmanager/widgets/my_button.dart';
  8. import 'package:liftmanager/widgets/signature.dart';
  9. class SignaturePage extends StatefulWidget {
  10. @override
  11. State<StatefulWidget> createState() {
  12. return SignatureState();
  13. }
  14. }
  15. class SignatureState extends State<SignaturePage> {
  16. final SignatureController _controller = SignatureController(
  17. penStrokeWidth: 5,
  18. );
  19. @override
  20. void initState() {
  21. super.initState();
  22. _controller.addListener(() => print("Value changed"));
  23. }
  24. @override
  25. Widget build(BuildContext context) {
  26. bool isDark = ThemeUtils.isDark(context);
  27. return Scaffold(
  28. appBar: MyAppBar(
  29. centerTitle: "签名",
  30. actions: <Widget>[
  31. FlatButton(
  32. child: Text("确定", key: const Key('actionName')),
  33. textColor: Colours.dark_text,
  34. highlightColor: Colors.transparent,
  35. onPressed: () async {
  36. if (_controller.isNotEmpty) {
  37. var data = await _controller.toPngBytes();
  38. // Image image = Image.memory(data);
  39. NavigatorUtils.goBackWithParams(context, data);
  40. } else {
  41. toasts("未签名");
  42. }
  43. },
  44. )
  45. ],
  46. ),
  47. body: Column(
  48. children: <Widget>[
  49. Signature(controller: _controller, backgroundColor: isDark?Colours.dark_text_gray:Colors.white),
  50. Container(
  51. color: isDark?Colours.dark_text_gray:Colors.white,
  52. child: MyButton(
  53. onPressed: () async {
  54. setState(() => _controller.clear());
  55. },
  56. text: "重写",
  57. )),
  58. ],
  59. ),
  60. );
  61. }
  62. }