Browse Source

FTitleField限制标题最小宽度

loki.wu 2 years ago
parent
commit
7292640bfb
1 changed files with 21 additions and 14 deletions
  1. 21 14
      lib/components/form_relevant/title_filed_compenent.dart

+ 21 - 14
lib/components/form_relevant/title_filed_compenent.dart

@@ -17,6 +17,9 @@ class FTitleField extends StatelessWidget implements FWidget {
   ///字段最大宽度(Title为固定字符串,因此不设置最大宽度)
   late double maxLargeFieldWidth;
 
+  //标题最小宽度(为了水平能够对齐)
+  late double minTitleWidth;
+
   ///是否是必填项
   late bool isRequiredField;
   FTitleField(
@@ -26,6 +29,7 @@ class FTitleField extends StatelessWidget implements FWidget {
     this.sizeBetween = 5,
     this.sizeAfter = 10,
     this.maxLargeFieldWidth = 210,
+    this.minTitleWidth = 60,
     this.isRequiredField = false,
   }) : super(key: key);
   @override
@@ -57,21 +61,24 @@ class FTitleField extends StatelessWidget implements FWidget {
   }
 
   FWidget _buildTitle() {
-    return FText.rich(
-      TextSpan(children: [
-        TextSpan(
-          text: title,
-          style: TextStyle(fontWeight: FontWeight.bold),
-        ),
-        if (isRequiredField) ...[
+    return FConstrainedBox(
+      constraints: BoxConstraints(minWidth: minTitleWidth),
+      child: FText.rich(
+        TextSpan(children: [
           TextSpan(
-            text: ' *',
-            style: TextStyle(color: Colors.red),
-          )
-        ] else ...[
-          TextSpan(text: '')
-        ]
-      ]),
+            text: title,
+            style: TextStyle(fontWeight: FontWeight.bold),
+          ),
+          if (isRequiredField) ...[
+            TextSpan(
+              text: ' *',
+              style: TextStyle(color: Colors.red),
+            )
+          ] else ...[
+            TextSpan(text: '')
+          ]
+        ]),
+      ),
     );
   }
 }