From 355fe96b2a4c7821256d9e8828d2cb9539904878 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 05 五月 2022 19:29:16 +0800
Subject: [PATCH] 功能完善

---
 flutter_module/lib/ui/widget/verification_box.dart |   37 +++++++++++++++++++++++--------------
 1 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/flutter_module/lib/ui/widget/verification_box.dart b/flutter_module/lib/ui/widget/verification_box.dart
index 81bfd2b..9008e8d 100644
--- a/flutter_module/lib/ui/widget/verification_box.dart
+++ b/flutter_module/lib/ui/widget/verification_box.dart
@@ -9,9 +9,10 @@
 ///SOS闆疯揪鎵弿View
 class VerificationBox extends StatefulWidget {
   final int length;
+  final double width;
   final VerificationBoxController controller;
 
-  VerificationBox(this.length, this.controller);
+  VerificationBox(this.length, this.controller, {required this.width});
 
   @override
   _VerificationBoxState createState() => _VerificationBoxState();
@@ -19,7 +20,7 @@
 
 class _VerificationBoxState extends State<VerificationBox>
     with WidgetsBindingObserver {
-  TextEditingController _controller = TextEditingController();
+  final TextEditingController _controller = TextEditingController();
   String content = "";
   final FocusNode _focusNode = FocusNode();
   bool isKeyboardActived = false;
@@ -27,8 +28,8 @@
   @override
   void initState() {
     super.initState();
+    WidgetsBinding.instance!.addObserver(this);
     widget.controller.controller = _controller;
-
     _controller.addListener(() {
       setState(() {
         print("listener:");
@@ -44,18 +45,20 @@
         }
       });
     });
-    WidgetsBinding.instance!.addObserver(this);
+
   }
 
   @override
   void dispose() {
     super.dispose();
+    WidgetsBinding.instance!.removeObserver(this);
     isKeyboardActived = false;
     _focusNode.unfocus();
   }
 
   @override
   void didChangeMetrics() {
+    print("didChangeMetrics isKeyboardActived:$isKeyboardActived");
     super.didChangeMetrics();
     WidgetsBinding.instance!.addPostFrameCallback((_) {
       // 褰撳墠鏄畨鍗撶郴缁熷苟涓斿湪鐒︾偣鑱氱劍鐨勬儏鍐典笅
@@ -75,6 +78,7 @@
   Widget build(BuildContext context) {
     return GestureDetector(
         onTap: () {
+          print("鐐瑰嚮浜嬩欢锛岃緭鍏ユ鑾峰彇鐒︾偣:${_focusNode.hasFocus}");
           FocusScope.of(context).requestFocus(_focusNode);
         },
         child: Stack(
@@ -91,8 +95,8 @@
                           RegExp("[a-zA-Z]|[0-9]")),
                       LengthLimitingTextInputFormatter(widget.length),
                     ],
-                    style: TextStyle(fontSize: 1, color: Colors.transparent),
-                    decoration: InputDecoration(
+                    style: const TextStyle(fontSize: 1, color: Colors.transparent),
+                    decoration: const InputDecoration(
                         border: InputBorder.none,
                         focusedBorder: InputBorder.none,
                         focusColor: Colors.transparent),
@@ -100,10 +104,12 @@
                     focusNode: _focusNode,
                     autofocus: false,
                     controller: _controller)),
-            Row(
-              mainAxisAlignment: MainAxisAlignment.spaceBetween,
-              children: getItems(),
-            )
+            SizedBox(
+                width: widget.width,
+                child: Row(
+                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
+                  children: getItems(),
+                ))
           ],
         ));
   }
@@ -118,10 +124,13 @@
   }
 
   Widget getItem(int index) {
+    double width = (widget.width - 10 * widget.length - 1) / widget.length;
+
+    //TODO 浼犲叆瀹藉害璁$畻
     return Container(
       alignment: Alignment.center,
-      width: 36,
-      height: 45,
+      width: width,
+      height: width * 1.25,
       decoration: BoxDecoration(
           color: const Color(0xFFEFEFEF),
           borderRadius: BorderRadius.circular(13)),
@@ -139,10 +148,10 @@
 class VerificationBoxController {
   VerificationBoxController();
 
-  TextEditingController? _controller = null;
+  TextEditingController? _controller;
 
   set controller(TextEditingController? controller) {
-    this._controller = controller;
+    _controller = controller;
   }
 
   String get text => (_controller == null ? "" : _controller!.text);

--
Gitblit v1.8.0