Skip to content

Commit 0db0027

Browse files
committed
修复移动版设置默认顺序无法取消的问题
1 parent 9ffc1c5 commit 0db0027

File tree

1 file changed

+58
-30
lines changed

1 file changed

+58
-30
lines changed

lib/mobile/pages/settings_m.dart

Lines changed: 58 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ class _SettingsMState extends State<SettingsM> {
160160
}
161161

162162
Future<void> showActiveOrderDialog(BuildContext context) async {
163+
OrderTypes type=storeGet.defaultActiveOrder.value;
164+
bool changed=false;
163165
await showDialog(
164166
context: context,
165167
barrierDismissible: false,
@@ -170,29 +172,41 @@ class _SettingsMState extends State<SettingsM> {
170172
color: Theme.of(context).brightness==Brightness.dark ? Colors.white : Colors.black
171173
),
172174
),
173-
content: Obx(()=>
174-
DropDownContent(
175-
selected: null,
176-
selectedIcon: orderToIcon(storeGet.defaultActiveOrder.value),
177-
selectedText: orderToString(storeGet.defaultActiveOrder.value),
178-
func: (val){
179-
val=val as OrderTypes;
180-
storeGet.defaultActiveOrder.value=val;
181-
prefs.setInt("defaultActiveOrder", val.index);
182-
},
183-
list: OrderTypes.values.map((item)=>CustomDropDownItem(orderToString(item), item, orderToIcon(item))).toList(),
184-
mobile: true,
185-
),
175+
content: StatefulBuilder(
176+
builder: (context, setState) {
177+
return DropDownContent(
178+
selected: null,
179+
selectedIcon: orderToIcon(type),
180+
selectedText: orderToString(type),
181+
func: (val){
182+
val=val as OrderTypes;
183+
setState((){
184+
type=val;
185+
});
186+
},
187+
list: OrderTypes.values.map((item)=>CustomDropDownItem(orderToString(item), item, orderToIcon(item))).toList(),
188+
mobile: true,
189+
);
190+
}
186191
),
187192
actions: [
188-
ElevatedButton(
193+
TextButton(
189194
onPressed: ()=>Navigator.pop(context),
195+
child: const Text("取消")
196+
),
197+
ElevatedButton(
198+
onPressed: (){
199+
changed=true;
200+
Navigator.pop(context);
201+
},
190202
child: const Text("完成")
191203
)
192204
],
193205
)
194206
);
195-
if(context.mounted){
207+
if(context.mounted && changed){
208+
storeGet.defaultActiveOrder.value=type;
209+
prefs.setInt("defaultActiveOrder", type.index);
196210
showErrWarnDialog(
197211
context,
198212
"已修改默认顺序",
@@ -202,6 +216,8 @@ class _SettingsMState extends State<SettingsM> {
202216
}
203217

204218
Future<void> showFinishOrderDialog(BuildContext context) async {
219+
bool changed=false;
220+
OrderTypes type=storeGet.defaultFinishOrder.value;
205221
await showDialog(
206222
context: context,
207223
barrierDismissible: false,
@@ -212,29 +228,41 @@ class _SettingsMState extends State<SettingsM> {
212228
color: Theme.of(context).brightness==Brightness.dark ? Colors.white : Colors.black
213229
),
214230
),
215-
content: Obx(
216-
()=> DropDownContent(
217-
selected: null,
218-
selectedIcon: orderToIcon(storeGet.defaultFinishOrder.value),
219-
selectedText: orderToString(storeGet.defaultFinishOrder.value),
220-
func: (val){
221-
val=val as OrderTypes;
222-
storeGet.defaultFinishOrder.value=val;
223-
prefs.setInt("defaultFinishOrder", val.index);
224-
},
225-
list: OrderTypes.values.map((item)=>CustomDropDownItem(orderToString(item), item, orderToIcon(item))).toList(),
226-
mobile: true,
227-
),
231+
content: StatefulBuilder(
232+
builder: (context, setState) {
233+
return DropDownContent(
234+
selected: null,
235+
selectedIcon: orderToIcon(type),
236+
selectedText: orderToString(type),
237+
func: (val){
238+
val=val as OrderTypes;
239+
setState((){
240+
type=val;
241+
});
242+
},
243+
list: OrderTypes.values.map((item)=>CustomDropDownItem(orderToString(item), item, orderToIcon(item))).toList(),
244+
mobile: true,
245+
);
246+
}
228247
),
229248
actions: [
249+
TextButton(
250+
onPressed: ()=>Navigator.pop(context),
251+
child: const Text("取消")
252+
),
230253
ElevatedButton(
231-
onPressed: ()=>Navigator.pop(context),
254+
onPressed: (){
255+
Navigator.pop(context);
256+
changed=true;
257+
},
232258
child: const Text("完成")
233259
)
234260
],
235261
),
236262
);
237-
if(context.mounted){
263+
if(context.mounted && changed){
264+
storeGet.defaultFinishOrder.value=type;
265+
prefs.setInt("defaultFinishOrder", type.index);
238266
showErrWarnDialog(
239267
context,
240268
"已修改默认顺序",

0 commit comments

Comments
 (0)