Merge pull request #43 from Iconica-Development/fix/radio-button-padding

feat: add option for spacing between radio items
This commit is contained in:
mike doornenbal 2024-09-09 16:46:54 +02:00 committed by GitHub
commit de5d38ffc7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 17 additions and 3 deletions

View file

@ -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

View file

@ -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<RadioItem> 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<RadioItem?> {
RadioPickerFormField({
required FormFieldSetter<RadioItem> super.onSaved,
required List<RadioItem> items,
required double itemSpacing,
void Function(RadioItem value)? onChanged,
super.initialValue,
super.key,
@ -46,6 +50,7 @@ class RadioPickerFormField extends FormField<RadioItem?> {
},
items: items,
initialValue: initialValue,
itemSpacing: itemSpacing,
),
);
}

View file

@ -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<RadioItem> items;
/// The spacing between each item.
final double itemSpacing;
@override
State<RadioPicker> createState() => _RadioPickerState();
}
@ -42,6 +46,9 @@ class _RadioPickerState extends State<RadioPicker> {
),
],
),
if (widget.items.last != item) ...[
SizedBox(width: widget.itemSpacing),
],
],
],
);

View file

@ -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: