signature_page.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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.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(
  50. controller: _controller,
  51. backgroundColor: isDark ? Colours.dark_text_gray : Colors.white),
  52. Container(
  53. color: isDark ? Colours.dark_text_gray : Colors.white,
  54. child: MyButton(
  55. onPressed: () async {
  56. setState(() => _controller.clear());
  57. },
  58. text: "重写",
  59. )),
  60. ],
  61. ),
  62. );
  63. }
  64. }