mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-21 03:15:14 +08:00
opt set pageTransition
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -33,31 +33,34 @@ class _MultiSelectDialogState<T> extends State<MultiSelectDialog<T>> {
|
||||
clipBehavior: Clip.hardEdge,
|
||||
title: Text(widget.title),
|
||||
contentPadding: const EdgeInsets.only(top: 12),
|
||||
content: SingleChildScrollView(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: widget.values.entries.map((i) {
|
||||
return Builder(
|
||||
builder: (context) {
|
||||
bool isChecked = _tempValues.contains(i.key);
|
||||
return CheckboxListTile(
|
||||
dense: true,
|
||||
value: isChecked,
|
||||
controlAffinity: ListTileControlAffinity.leading,
|
||||
title: Text(
|
||||
i.value,
|
||||
style: theme.textTheme.titleMedium!,
|
||||
),
|
||||
onChanged: (value) {
|
||||
isChecked
|
||||
? _tempValues.remove(i.key)
|
||||
: _tempValues.add(i.key);
|
||||
(context as Element).markNeedsBuild();
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}).toList(),
|
||||
content: Material(
|
||||
type: .transparency,
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: widget.values.entries.map((i) {
|
||||
return Builder(
|
||||
builder: (context) {
|
||||
bool isChecked = _tempValues.contains(i.key);
|
||||
return CheckboxListTile(
|
||||
dense: true,
|
||||
value: isChecked,
|
||||
controlAffinity: ListTileControlAffinity.leading,
|
||||
title: Text(
|
||||
i.value,
|
||||
style: theme.textTheme.titleMedium!,
|
||||
),
|
||||
onChanged: (value) {
|
||||
isChecked
|
||||
? _tempValues.remove(i.key)
|
||||
: _tempValues.add(i.key);
|
||||
(context as Element).markNeedsBuild();
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
),
|
||||
actionsPadding: const EdgeInsets.only(left: 16, right: 16, bottom: 12),
|
||||
|
||||
@@ -39,7 +39,9 @@ class _NormalItemState extends State<NormalItem> {
|
||||
return ListTile(
|
||||
contentPadding: widget.contentPadding,
|
||||
onTap: () => widget.onTap?.call(() {
|
||||
setState(() {});
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
}),
|
||||
title: Text(
|
||||
widget.title ?? widget.getTitle!(),
|
||||
|
||||
@@ -37,39 +37,42 @@ class _OrderedMultiSelectDialogState<T>
|
||||
clipBehavior: Clip.hardEdge,
|
||||
title: Text(widget.title),
|
||||
contentPadding: const EdgeInsets.only(top: 12),
|
||||
content: SingleChildScrollView(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: widget.values.entries.map((i) {
|
||||
return Builder(
|
||||
builder: (context) {
|
||||
return OrderedCheckboxListTile(
|
||||
dense: true,
|
||||
value: _tempValues[i.key],
|
||||
title: Text(
|
||||
i.value,
|
||||
style: theme.textTheme.titleMedium!,
|
||||
),
|
||||
onChanged: (value) {
|
||||
if (value == null) {
|
||||
_tempValues[i.key] = _tempValues.length + 1;
|
||||
(context as Element).markNeedsBuild();
|
||||
} else {
|
||||
final pos = _tempValues.remove(i.key)!;
|
||||
if (pos == _tempValues.length + 1) {
|
||||
content: Material(
|
||||
type: .transparency,
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: widget.values.entries.map((i) {
|
||||
return Builder(
|
||||
builder: (context) {
|
||||
return OrderedCheckboxListTile(
|
||||
dense: true,
|
||||
value: _tempValues[i.key],
|
||||
title: Text(
|
||||
i.value,
|
||||
style: theme.textTheme.titleMedium!,
|
||||
),
|
||||
onChanged: (value) {
|
||||
if (value == null) {
|
||||
_tempValues[i.key] = _tempValues.length + 1;
|
||||
(context as Element).markNeedsBuild();
|
||||
} else {
|
||||
_tempValues.updateAll(
|
||||
(key, value) => value > pos ? value - 1 : value,
|
||||
);
|
||||
setState(() {});
|
||||
final pos = _tempValues.remove(i.key)!;
|
||||
if (pos == _tempValues.length + 1) {
|
||||
(context as Element).markNeedsBuild();
|
||||
} else {
|
||||
_tempValues.updateAll(
|
||||
(key, value) => value > pos ? value - 1 : value,
|
||||
);
|
||||
setState(() {});
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}).toList(),
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
),
|
||||
actionsPadding: const EdgeInsets.only(left: 16, right: 16, bottom: 12),
|
||||
|
||||
@@ -38,27 +38,30 @@ class SelectDialog<T> extends StatelessWidget {
|
||||
? const BoxConstraints(maxWidth: 320, minWidth: 320)
|
||||
: null,
|
||||
contentPadding: const EdgeInsets.symmetric(vertical: 12),
|
||||
content: SingleChildScrollView(
|
||||
child: RadioGroup<T>(
|
||||
onChanged: (v) => Navigator.of(context).pop(v ?? value),
|
||||
groupValue: value,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: List.generate(
|
||||
values.length,
|
||||
(index) {
|
||||
final item = values[index];
|
||||
return RadioListTile<T>(
|
||||
toggleable: toggleable,
|
||||
dense: true,
|
||||
value: item.$1,
|
||||
title: Text(
|
||||
item.$2,
|
||||
style: titleMedium,
|
||||
),
|
||||
subtitle: subtitleBuilder?.call(context, index),
|
||||
);
|
||||
},
|
||||
content: Material(
|
||||
type: .transparency,
|
||||
child: SingleChildScrollView(
|
||||
child: RadioGroup<T>(
|
||||
onChanged: (v) => Navigator.of(context).pop(v ?? value),
|
||||
groupValue: value,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: List.generate(
|
||||
values.length,
|
||||
(index) {
|
||||
final item = values[index];
|
||||
return RadioListTile<T>(
|
||||
toggleable: toggleable,
|
||||
dense: true,
|
||||
value: item.$1,
|
||||
title: Text(
|
||||
item.$2,
|
||||
style: titleMedium,
|
||||
),
|
||||
subtitle: subtitleBuilder?.call(context, index),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -91,7 +91,9 @@ class _SetSwitchItemState extends State<SetSwitchItem> {
|
||||
);
|
||||
val = true;
|
||||
SmartDialog.showToast('重启生效');
|
||||
setState(() {});
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
},
|
||||
child: const Text('确认'),
|
||||
),
|
||||
@@ -113,7 +115,9 @@ class _SetSwitchItemState extends State<SetSwitchItem> {
|
||||
if (widget.needReboot) {
|
||||
SmartDialog.showToast('重启生效');
|
||||
}
|
||||
setState(() {});
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user