-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
class _WGetxEnumx<T extends Enum> extends StatefulWidget {
const _WGetxEnumx({
super.key,
required this.values,
required this.initialSelection,
required this.onSelectionChanged,
});
final List<T> values;
final Set<T> initialSelection;
final void Function(Set<T>) onSelectionChanged;
@override
State<_WGetxEnumx<T>> createState() => _WGetxEnumxState<T>();
}
class _WGetxEnumxState<T extends Enum> extends State<_WGetxEnumx<T>> {
late Set<T> selectedTypes;
@override
void initState() {
super.initState();
selectedTypes = widget.initialSelection;
}
@override
Widget build(BuildContext context) {
return SegmentedButton<T>(
segments: <ButtonSegment<T>>[
for (final T view in widget.values)
ButtonSegment<T>(value: view, label: Text(view.name)),
],
selected: selectedTypes,
onSelectionChanged: (Set<T> newSelection) {
setState(() {
selectedTypes = newSelection;
});
widget.onSelectionChanged(newSelection);
},
);
}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels