FTileGroup.merge constructor
FTileGroup.merge({
- required List<
FTileGroupMixin> children, - FTileGroupStyleDelta 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,
- Widget? label,
- Widget? description,
- Widget? error,
- Key? key,
Creates a FTileGroup that merges multiple FTileGroupMixins together.
All group labels will be ignored.
Implementation
FTileGroup.merge({
required List<FTileGroupMixin> 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,
this.label,
this.description,
this.error,
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.tileStyles.toItemStyles(),
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);
});