Showing
2 changed files
with
187 additions
and
12 deletions
1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
2 | import 'package:flutter/services.dart'; | 2 | import 'package:flutter/services.dart'; |
3 | -import '../../shared/colors.dart'; | 3 | +import 'package:flutter_application_1/src/screens/SettingPage.dart'; |
4 | -import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
5 | 4 | ||
6 | class InformationModify extends StatefulWidget { | 5 | class InformationModify extends StatefulWidget { |
7 | @override | 6 | @override |
... | @@ -9,16 +8,192 @@ class InformationModify extends StatefulWidget { | ... | @@ -9,16 +8,192 @@ class InformationModify extends StatefulWidget { |
9 | } | 8 | } |
10 | 9 | ||
11 | class _InformationModifyState extends State<InformationModify> { | 10 | class _InformationModifyState extends State<InformationModify> { |
11 | + final passwordController = TextEditingController(); | ||
12 | + final passwordValidController = TextEditingController(); | ||
13 | + final medicineNameController = TextEditingController(); | ||
14 | + final medicineFactureController = TextEditingController(); | ||
15 | + bool _validate = false; | ||
16 | + int userRole = 0; | ||
17 | + | ||
18 | + // Initially password is obscure | ||
19 | + bool passwordVisible = false; | ||
20 | + bool passwordValidationVisible = true; | ||
21 | + | ||
12 | Widget build(BuildContext context) { | 22 | Widget build(BuildContext context) { |
13 | - return MaterialApp( | 23 | + final Size size = MediaQuery.of(context).size; |
14 | - title: 'Welcome to Flutter', | 24 | + return Scaffold( |
15 | - home: Scaffold( | 25 | + appBar: AppBar( |
16 | - appBar: AppBar( | 26 | + iconTheme: IconThemeData(color: Colors.black), |
17 | - title: Text('Welcome to Flutter'), | 27 | + backgroundColor: Colors.white, |
18 | - ), | 28 | + title: Text( |
19 | - body: Center( | 29 | + 'Smart Medicine Box', |
20 | - child: Text('약병 정보 변경 작업 구역'), | 30 | + style: TextStyle( |
31 | + color: Colors.black, | ||
32 | + fontSize: 20, | ||
33 | + fontFamily: 'Noto', | ||
34 | + fontWeight: FontWeight.bold), | ||
21 | ), | 35 | ), |
36 | + actions: [ | ||
37 | + IconButton( | ||
38 | + icon: Icon( | ||
39 | + Icons.settings, | ||
40 | + color: Colors.black, | ||
41 | + ), | ||
42 | + onPressed: () { | ||
43 | + Navigator.push( | ||
44 | + context, | ||
45 | + MaterialPageRoute( | ||
46 | + builder: (BuildContext context) => SettingPage(), | ||
47 | + )); | ||
48 | + }, | ||
49 | + ) | ||
50 | + ], | ||
51 | + ), | ||
52 | + body: ListView( | ||
53 | + children: <Widget>[ | ||
54 | + Container( | ||
55 | + height: size.height * 0.9, | ||
56 | + margin: EdgeInsets.fromLTRB(0, 10, 0, 0), | ||
57 | + padding: EdgeInsets.fromLTRB(5, 0, 5, 5), | ||
58 | + child: Column( | ||
59 | + children: <Widget>[ | ||
60 | + Container( | ||
61 | + padding: EdgeInsets.fromLTRB(5, 5, 5, 5), | ||
62 | + height: size.height * 0.08, | ||
63 | + width: size.width, | ||
64 | + child: Center( | ||
65 | + child: Text( | ||
66 | + '회원 정보 수정', | ||
67 | + textAlign: TextAlign.center, | ||
68 | + textScaleFactor: 1.0, | ||
69 | + style: TextStyle( | ||
70 | + color: Colors.black, | ||
71 | + fontSize: 32, | ||
72 | + fontFamily: 'NotoSansKR', | ||
73 | + fontWeight: FontWeight.w700), | ||
74 | + ), | ||
75 | + ), | ||
76 | + ), | ||
77 | + MediaQuery( | ||
78 | + data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0), | ||
79 | + child: Container( | ||
80 | + height: size.height * 0.6, | ||
81 | + child: Padding( | ||
82 | + padding: const EdgeInsets.fromLTRB(20, 5, 20, 20), | ||
83 | + child: new Column( | ||
84 | + children: <Widget>[ | ||
85 | + SizedBox(height: 15), | ||
86 | + Container( | ||
87 | + height: size.height * 0.091, | ||
88 | + padding: const EdgeInsets.fromLTRB(5, 10, 5, 5), | ||
89 | + child: Container( | ||
90 | + width: size.width * 0.85, | ||
91 | + padding: const EdgeInsets.fromLTRB(5, 16, 5, 3), | ||
92 | + decoration: BoxDecoration( | ||
93 | + color: Color(0xffBDBDBD), | ||
94 | + border: Border.all(), | ||
95 | + borderRadius: | ||
96 | + BorderRadius.all(Radius.circular(5))), | ||
97 | + child: Text( | ||
98 | + 'test@naver.com', | ||
99 | + textScaleFactor: 1.0, | ||
100 | + style: TextStyle( | ||
101 | + color: Colors.black, | ||
102 | + fontSize: 18, | ||
103 | + fontFamily: 'NotoSansKR', | ||
104 | + ), | ||
105 | + ), | ||
106 | + ), | ||
107 | + ), | ||
108 | + SizedBox(height: 15), | ||
109 | + Container( | ||
110 | + height: size.height * 0.13, | ||
111 | + padding: const EdgeInsets.fromLTRB(5, 10, 5, 5), | ||
112 | + child: TextFormField( | ||
113 | + keyboardType: TextInputType.text, | ||
114 | + controller: passwordController, | ||
115 | + obscureText: | ||
116 | + !passwordVisible, //This will obscure text dynamically | ||
117 | + decoration: InputDecoration( | ||
118 | + border: OutlineInputBorder( | ||
119 | + borderSide: | ||
120 | + BorderSide(color: Colors.black)), | ||
121 | + labelText: '비밀번호', | ||
122 | + helperText: '비밀번호를 입력해주세요', | ||
123 | + // Here is key idea | ||
124 | + suffixIcon: IconButton( | ||
125 | + icon: Icon( | ||
126 | + // Based on passwordVisible state choose the icon | ||
127 | + passwordVisible | ||
128 | + ? Icons.visibility | ||
129 | + : Icons.visibility_off, | ||
130 | + color: Theme.of(context).primaryColorDark, | ||
131 | + ), | ||
132 | + onPressed: () { | ||
133 | + // Update the state i.e. toogle the state of passwordVisible variable | ||
134 | + setState(() { | ||
135 | + passwordVisible = !passwordVisible; | ||
136 | + }); | ||
137 | + }, | ||
138 | + ), | ||
139 | + ), | ||
140 | + ), | ||
141 | + ), | ||
142 | + Container( | ||
143 | + height: size.height * 0.13, | ||
144 | + padding: const EdgeInsets.fromLTRB(5, 10, 5, 5), | ||
145 | + child: TextFormField( | ||
146 | + keyboardType: TextInputType.text, | ||
147 | + controller: medicineNameController, | ||
148 | + decoration: InputDecoration( | ||
149 | + border: OutlineInputBorder(), | ||
150 | + labelText: '약 이름', | ||
151 | + helperText: '약의 이름을 읿력하세요', | ||
152 | + ), | ||
153 | + ), | ||
154 | + ), | ||
155 | + Container( | ||
156 | + height: size.height * 0.13, | ||
157 | + padding: const EdgeInsets.fromLTRB(5, 10, 5, 5), | ||
158 | + child: TextFormField( | ||
159 | + keyboardType: TextInputType.text, | ||
160 | + controller: medicineFactureController, | ||
161 | + decoration: InputDecoration( | ||
162 | + border: OutlineInputBorder(), | ||
163 | + labelText: '약 제조사 이름', | ||
164 | + helperText: '약 제조사의 이름을 읿력하세요', | ||
165 | + ), | ||
166 | + ), | ||
167 | + ), | ||
168 | + ], | ||
169 | + ), | ||
170 | + ), | ||
171 | + ), | ||
172 | + ), | ||
173 | + Container( | ||
174 | + height: 100, | ||
175 | + width: size.width * 0.7, | ||
176 | + padding: const EdgeInsets.fromLTRB(20, 20, 20, 20), | ||
177 | + child: RaisedButton( | ||
178 | + onPressed: () async {}, | ||
179 | + shape: RoundedRectangleBorder( | ||
180 | + borderRadius: new BorderRadius.circular(20.0), | ||
181 | + side: BorderSide(color: Colors.blue)), | ||
182 | + color: Color(0xff1674f6), | ||
183 | + child: Text( | ||
184 | + '회원 정보 수정', | ||
185 | + textScaleFactor: 1.0, | ||
186 | + style: TextStyle( | ||
187 | + fontSize: 16, | ||
188 | + color: Colors.white, | ||
189 | + fontWeight: FontWeight.bold), | ||
190 | + ), | ||
191 | + ), | ||
192 | + ) | ||
193 | + ], | ||
194 | + ), | ||
195 | + ), | ||
196 | + ], | ||
22 | ), | 197 | ), |
23 | ); | 198 | ); |
24 | } | 199 | } | ... | ... |
... | @@ -57,7 +57,7 @@ class _SignUpLocalState extends State<SignUpLocal> { | ... | @@ -57,7 +57,7 @@ class _SignUpLocalState extends State<SignUpLocal> { |
57 | MediaQuery( | 57 | MediaQuery( |
58 | data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0), | 58 | data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0), |
59 | child: Container( | 59 | child: Container( |
60 | - height: size.height * 0.8, | 60 | + height: size.height * 0.6, |
61 | child: Padding( | 61 | child: Padding( |
62 | padding: const EdgeInsets.fromLTRB(20, 5, 20, 20), | 62 | padding: const EdgeInsets.fromLTRB(20, 5, 20, 20), |
63 | child: new Column( | 63 | child: new Column( |
... | @@ -188,7 +188,7 @@ class _SignUpLocalState extends State<SignUpLocal> { | ... | @@ -188,7 +188,7 @@ class _SignUpLocalState extends State<SignUpLocal> { |
188 | Padding( | 188 | Padding( |
189 | padding: const EdgeInsets.fromLTRB(70, 0, 70, 0), | 189 | padding: const EdgeInsets.fromLTRB(70, 0, 70, 0), |
190 | child: Text( | 190 | child: Text( |
191 | - '회원 가입시, 이용 야관 및 개인정보 처리 방침에 동의하는 것으로 간주합니다..', | 191 | + '회원 가입시, 이용 약관 및 개인정보 처리 방침에 동의하는 것으로 간주합니다..', |
192 | style: TextStyle(fontSize: 12, color: Color(0xff747474)), | 192 | style: TextStyle(fontSize: 12, color: Color(0xff747474)), |
193 | textAlign: TextAlign.center, | 193 | textAlign: TextAlign.center, |
194 | ), | 194 | ), | ... | ... |
-
Please register or login to post a comment