张延森 пре 3 година
родитељ
комит
bebf27574c
4 измењених фајлова са 103 додато и 5 уклоњено
  1. 41
    5
      lib/main.dart
  2. 54
    0
      lib/widgets/Cell.dart
  3. 7
    0
      pubspec.lock
  4. 1
    0
      pubspec.yaml

+ 41
- 5
lib/main.dart Прегледај датотеку

@@ -1,8 +1,10 @@
1 1
 
2 2
 import 'package:farmer_client/models/Store.dart';
3 3
 import 'package:farmer_client/services/user.dart';
4
+import 'package:farmer_client/widgets/Cell.dart';
4 5
 import 'package:farmer_client/widgets/GradientButton.dart';
5 6
 import 'package:flutter/material.dart';
7
+import 'package:flutter_screenutil/flutter_screenutil.dart';
6 8
 import 'package:get/get.dart';
7 9
 
8 10
 void main() {
@@ -16,7 +18,6 @@ class MyApp extends StatelessWidget {
16 18
   @override
17 19
   Widget build(BuildContext context) {
18 20
     Store().init();
19
-
20 21
     return MaterialApp(
21 22
       title: 'Flutter Demo',
22 23
       theme: ThemeData(
@@ -75,6 +76,15 @@ class _MyHomePageState extends State<MyHomePage> {
75 76
   @override
76 77
   Widget build(BuildContext context) {
77 78
 
79
+    ScreenUtil.init(
80
+        BoxConstraints(
81
+            maxWidth: MediaQuery.of(context).size.width,
82
+            maxHeight: MediaQuery.of(context).size.height),
83
+        designSize: const Size(375, 812),
84
+        context: context,
85
+        minTextAdapt: true,
86
+        orientation: Orientation.portrait);
87
+
78 88
     // var find = Get.find(tag: 'user');
79 89
 
80 90
     // This method is rerun every time setState is called, for instance as done
@@ -116,10 +126,36 @@ class _MyHomePageState extends State<MyHomePage> {
116 126
               '$_counter',
117 127
               style: Theme.of(context).textTheme.headline4,
118 128
             ),
119
-            GradientButton(
120
-              colors: const [Colors.orange, Colors.red],
121
-              child: const Text("Submit"),
122
-              onPressed: onTap,
129
+            Cell(
130
+              margin: EdgeInsets.symmetric(horizontal: 13.w),
131
+              header: Text("+86", style: TextStyle(fontSize: 19.sp),),
132
+              child: TextField(
133
+                style: TextStyle(
134
+                  fontSize: 17.sp,
135
+                ),
136
+                decoration: const InputDecoration(
137
+                  isCollapsed:true,
138
+                  contentPadding: EdgeInsets.symmetric(vertical: 8, horizontal: 16),
139
+                  labelText: "请输入手机号码",
140
+                  border: InputBorder.none,
141
+                  // border: OutlineInputBorder(
142
+                  //   // borderSide: BorderSide.none,
143
+                  //   // gapPadding: 0,
144
+                  // ),
145
+                  floatingLabelBehavior: FloatingLabelBehavior.never,
146
+                )
147
+              ),
148
+              footer: ElevatedButton(
149
+                onPressed: () => {},
150
+                child: Text("获取验证码", style: TextStyle(fontSize: 15.sp),),
151
+                style: ElevatedButton.styleFrom(
152
+                  primary: const Color(0xFFFF703B),
153
+                  elevation: 0,
154
+                  shape: const RoundedRectangleBorder(
155
+                    borderRadius: BorderRadius.all(Radius.circular(10))
156
+                  )
157
+                ),
158
+              ),
123 159
             ),
124 160
           ],
125 161
         ),

+ 54
- 0
lib/widgets/Cell.dart Прегледај датотеку

@@ -0,0 +1,54 @@
1
+
2
+import 'package:flutter/cupertino.dart';
3
+import 'package:flutter/widgets.dart';
4
+import 'package:flutter_screenutil/flutter_screenutil.dart';
5
+
6
+class Cell extends StatelessWidget {
7
+  const Cell ({
8
+    Key? key,
9
+    this.header,
10
+    required this.child,
11
+    this.footer,
12
+    this.margin,
13
+  }) : super(key: key);
14
+
15
+  final Widget? header;
16
+  final Widget child;
17
+  final Widget? footer;
18
+  final EdgeInsetsGeometry? margin;
19
+
20
+  @override
21
+  Widget build(BuildContext context) {
22
+
23
+    return Container(
24
+      margin: margin,
25
+      padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 0.0),
26
+      decoration: const BoxDecoration(
27
+        border: Border(
28
+          bottom: BorderSide(width: 1.0, color: Color(0x1F000000)),
29
+        )
30
+      ),
31
+      child: Row(
32
+        children: [
33
+          if (null != header) SizedBox(
34
+            width: 53.w,
35
+            child: Container(
36
+              decoration: const BoxDecoration(
37
+                border: Border(
38
+                  right: BorderSide(width: 1, color: Color(0xFF333333))
39
+                )
40
+              ),
41
+              child: header,
42
+            ),
43
+          ),
44
+          Expanded(child: child,),
45
+          if (null != footer) ConstrainedBox (
46
+            constraints: BoxConstraints(maxWidth: 94.w),
47
+            child: footer,
48
+          )
49
+        ],
50
+      ),
51
+    );
52
+  }
53
+  
54
+}

+ 7
- 0
pubspec.lock Прегледај датотеку

@@ -146,6 +146,13 @@ packages:
146 146
       url: "https://pub.flutter-io.cn"
147 147
     source: hosted
148 148
     version: "1.0.4"
149
+  flutter_screenutil:
150
+    dependency: "direct main"
151
+    description:
152
+      name: flutter_screenutil
153
+      url: "https://pub.flutter-io.cn"
154
+    source: hosted
155
+    version: "5.3.1"
149 156
   flutter_test:
150 157
     dependency: "direct dev"
151 158
     description: flutter

+ 1
- 0
pubspec.yaml Прегледај датотеку

@@ -37,6 +37,7 @@ dependencies:
37 37
   json_serializable: ^6.1.5
38 38
   get: ^4.6.1
39 39
   dio: ^4.0.6
40
+  flutter_screenutil: ^5.3.1
40 41
 
41 42
 dev_dependencies:
42 43
   flutter_test: