From 0da6ba35f2081cfbdbdca783e53f4eee08e22811 Mon Sep 17 00:00:00 2001 From: Freek van de Ven Date: Mon, 9 Sep 2024 16:42:48 +0200 Subject: [PATCH] feat: add option for spacing between radio items --- CHANGELOG.md | 4 ++++ lib/src/inputs/radio/radio_picker.dart | 5 +++++ lib/src/inputs/radio/radio_picker_field.dart | 7 +++++++ pubspec.yaml | 4 +--- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d45a07..6c91dd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.7.0 + +* Added a 16 pixel padding between the `FlutterFormInputRadioPicker` items that is customizable with the `itemSpacing` parameter. + ## 3.6.0 * Added style parameter to `FlutterFormInputMultiLine` * Upgrade flutter_iconica_analysis to 7.0.0 diff --git a/lib/src/inputs/radio/radio_picker.dart b/lib/src/inputs/radio/radio_picker.dart index d643687..5140fcc 100644 --- a/lib/src/inputs/radio/radio_picker.dart +++ b/lib/src/inputs/radio/radio_picker.dart @@ -14,18 +14,21 @@ class FlutterFormInputRadioPicker extends StatelessWidget { this.onSaved, this.onChanged, this.initialValue, + this.itemSpacing = 16.0, }); final Function(RadioItem?)? onSaved; final String? initialValue; final Function(RadioItem?)? onChanged; final List items; + final double itemSpacing; @override Widget build(BuildContext context) => RadioPickerFormField( onSaved: (value) => onSaved?.call(value), onChanged: (value) => onChanged?.call(value), initialValue: items.firstWhereOrNull((i) => i.value == initialValue), + itemSpacing: itemSpacing, items: items, ); } @@ -34,6 +37,7 @@ class RadioPickerFormField extends FormField { RadioPickerFormField({ required FormFieldSetter super.onSaved, required List items, + required double itemSpacing, void Function(RadioItem value)? onChanged, super.initialValue, super.key, @@ -46,6 +50,7 @@ class RadioPickerFormField extends FormField { }, items: items, initialValue: initialValue, + itemSpacing: itemSpacing, ), ); } diff --git a/lib/src/inputs/radio/radio_picker_field.dart b/lib/src/inputs/radio/radio_picker_field.dart index abf4dc8..b097e9c 100644 --- a/lib/src/inputs/radio/radio_picker_field.dart +++ b/lib/src/inputs/radio/radio_picker_field.dart @@ -5,6 +5,7 @@ class RadioPicker extends StatefulWidget { const RadioPicker({ required this.onChanged, required this.items, + this.itemSpacing = 16.0, this.initialValue, super.key, }); @@ -13,6 +14,9 @@ class RadioPicker extends StatefulWidget { final Function(RadioItem) onChanged; final List items; + /// The spacing between each item. + final double itemSpacing; + @override State createState() => _RadioPickerState(); } @@ -42,6 +46,9 @@ class _RadioPickerState extends State { ), ], ), + if (widget.items.last != item) ...[ + SizedBox(width: widget.itemSpacing), + ], ], ], ); diff --git a/pubspec.yaml b/pubspec.yaml index d3b8053..8171d9b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_input_library description: A new Flutter package project. -version: 3.6.0 +version: 3.7.0 repository: https://github.com/Iconica-Development/flutter_input_library publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub @@ -22,5 +22,3 @@ dev_dependencies: git: url: https://github.com/Iconica-Development/flutter_iconica_analysis ref: 7.0.0 - -flutter: