FItemGroup.merge constructor
FItemGroup.merge({
- required List<
FItemGroupMixin> children, - FItemGroupStyleDelta style = const .context(),
- ScrollController? scrollController,
- double? cacheExtent,
- double maxHeight = .infinity,
- DragStartBehavior dragStartBehavior = .start,
- ScrollPhysics physics = const ClampingScrollPhysics(),
- bool? enabled,
- bool? intrinsicWidth,
- FItemDivider divider = .full,
- String? semanticsLabel,
- Key? key,
Creates a FItemGroup that merges multiple FItemGroupMixins together.
All group labels will be ignored.
Implementation
/// Creates a [FItemGroup] that merges multiple [FItemGroupMixin]s together.
///
/// All group labels will be ignored.
/// {@endtemplate}
FItemGroup.merge({
required List<FItemGroupMixin> children,
this.style = const .context(),
this.scrollController,
this.cacheExtent,
this.maxHeight = .infinity,
this.dragStartBehavior = .start,
this.physics = const ClampingScrollPhysics(),
this.enabled,
this.intrinsicWidth,
this.divider = .full,
this.semanticsLabel,
super.key,
}) : assert(0 < maxHeight, 'maxHeight ($maxHeight) must be > 0'),
_builder = ((style, enabled, intrinsicWidth) {
final nested = [
for (final (index, child) in children.indexed)
FInheritedItemData.merge(
styles: style.itemStyles,
spacing: style.spacing,
enabled: enabled,
intrinsicWidth: intrinsicWidth,
dividerColor: style.dividerColor,
dividerWidth: style.dividerWidth,
divider: divider,
index: index,
last: index == children.length - 1,
child: child,
),
];
return intrinsicWidth ? Column(mainAxisSize: .min, children: nested) : SliverMainAxisGroup(slivers: nested);
});