Commit 23b46e8e3df0e20a602108774441890d4be680a0
1 parent
cb38bc90
feat: 修改个人信息性别
Showing
4 changed files
with
61 additions
and
20 deletions
lib/models/user_entity.dart
lib/pages/user/information/user_information_page.dart
... | ... | @@ -91,7 +91,8 @@ class _UserInformationContentView extends StatelessWidget { |
91 | 91 | color: const Color(0xFF333333), |
92 | 92 | fontSize: 21.sp, |
93 | 93 | ), |
94 | - )), | |
94 | + ), | |
95 | + onTap: () => _openModifyPage(context, ModifyUserInformationType.age)), | |
95 | 96 | 11.verticalSpace, |
96 | 97 | _buildContentRow( |
97 | 98 | '性别', |
... | ... | @@ -102,7 +103,8 @@ class _UserInformationContentView extends StatelessWidget { |
102 | 103 | color: const Color(0xFF333333), |
103 | 104 | fontSize: 21.sp, |
104 | 105 | ), |
105 | - )), | |
106 | + ), | |
107 | + onTap: () => _openModifyPage(context, ModifyUserInformationType.gender)), | |
106 | 108 | 11.verticalSpace, |
107 | 109 | _buildContentRow( |
108 | 110 | '账号', | ... | ... |
lib/pages/user/modify/modify_user_avatar_page.dart
0 → 100644
lib/pages/user/modify/modify_user_information_page.dart
... | ... | @@ -7,6 +7,7 @@ import 'package:wow_english/common/core/assets_const.dart'; |
7 | 7 | import 'package:wow_english/common/widgets/textfield_customer_widget.dart'; |
8 | 8 | import 'package:wow_english/common/widgets/we_app_bar.dart'; |
9 | 9 | import 'package:wow_english/pages/user/bloc/user_bloc.dart'; |
10 | +import 'package:wow_english/utils/log_util.dart'; | |
10 | 11 | |
11 | 12 | enum ModifyUserInformationType { |
12 | 13 | avatar('头像'), |
... | ... | @@ -40,8 +41,7 @@ class ModifyUserInformationPage extends StatelessWidget { |
40 | 41 | titleText: '修改${type.title}', |
41 | 42 | ), |
42 | 43 | body: BlocListener<UserBloc, UserState>( |
43 | - listener: (context, state) { | |
44 | - }, | |
44 | + listener: (context, state) {}, | |
45 | 45 | child: BlocBuilder<UserBloc, UserState>(builder: (context, state) { |
46 | 46 | //final bloc = context.read<UserBloc>(); |
47 | 47 | // 区别是什么? |
... | ... | @@ -62,20 +62,9 @@ class ModifyUserInformationPage extends StatelessWidget { |
62 | 62 | ), |
63 | 63 | ), |
64 | 64 | 20.horizontalSpace, |
65 | - TextFieldCustomerWidget( | |
66 | - height: 65.h, | |
67 | - width: 222.w, | |
68 | - bgImageName: 'Input_layer_up', | |
69 | - textInputType: TextInputType.name, | |
70 | - inputFormatters: [ | |
71 | - LengthLimitingTextInputFormatter(12), | |
72 | - FilteringTextInputFormatter.deny(RegExp('[ ]')), | |
73 | - ], | |
74 | - //controller: bloc.modifyTextController, | |
75 | - /*onChangeValue: (String value) { | |
76 | - bloc.add(CodeNumberChangeEvent()); | |
77 | - },*/ | |
78 | - ), | |
65 | + // 输入框 or 选择框 | |
66 | + _buildTextFieldWidget(context), | |
67 | + // 占位 | |
79 | 68 | Expanded( |
80 | 69 | child: Container(), |
81 | 70 | ), |
... | ... | @@ -83,7 +72,7 @@ class ModifyUserInformationPage extends StatelessWidget { |
83 | 72 | GestureDetector( |
84 | 73 | onTap: () { |
85 | 74 | // 更新type类型的字段 |
86 | - //bloc.add(UserUpdate(type)); | |
75 | + context.read<UserBloc>().add(UserUpdate(type)); | |
87 | 76 | }, |
88 | 77 | child: Container( |
89 | 78 | alignment: Alignment.center, |
... | ... | @@ -107,4 +96,54 @@ class ModifyUserInformationPage extends StatelessWidget { |
107 | 96 | ), |
108 | 97 | ); |
109 | 98 | } |
99 | + | |
100 | + Widget _buildTextFieldWidget(BuildContext context) { | |
101 | + if (type == ModifyUserInformationType.gender) { | |
102 | + return Row( | |
103 | + children: <Widget>[ | |
104 | + RadioListTile( | |
105 | + title: const Text('男'), | |
106 | + value: 0, | |
107 | + groupValue: type, | |
108 | + onChanged: (value) { | |
109 | + Log.d('男value = $value'); | |
110 | + }, | |
111 | + ), | |
112 | + RadioListTile( | |
113 | + title: const Text('女'), | |
114 | + value: 1, | |
115 | + groupValue: type, | |
116 | + onChanged: (value) { | |
117 | + Log.d('女value = $value'); | |
118 | + }, | |
119 | + ), | |
120 | + ], | |
121 | + ); | |
122 | + } | |
123 | + | |
124 | + var formatters = [ | |
125 | + LengthLimitingTextInputFormatter(12), | |
126 | + FilteringTextInputFormatter.deny(RegExp('[ ]')), | |
127 | + ]; | |
128 | + var inputType = TextInputType.name; | |
129 | + // 当输入年龄时 | |
130 | + if (type == ModifyUserInformationType.age) { | |
131 | + formatters = [ | |
132 | + LengthLimitingTextInputFormatter(2), | |
133 | + FilteringTextInputFormatter.deny(RegExp('[ ]')), | |
134 | + ]; | |
135 | + inputType = TextInputType.number; | |
136 | + } | |
137 | + return TextFieldCustomerWidget( | |
138 | + height: 65.h, | |
139 | + width: 222.w, | |
140 | + bgImageName: 'Input_layer_up', | |
141 | + textInputType: inputType, | |
142 | + inputFormatters: formatters, | |
143 | + controller: context.read<UserBloc>().modifyTextController, | |
144 | + /*onChangeValue: (String value) { | |
145 | + bloc.add(CodeNumberChangeEvent()); | |
146 | + },*/ | |
147 | + ); | |
148 | + } | |
110 | 149 | } | ... | ... |