TTableHeader<T, K>.column constructor
TTableHeader<T, K>.column (
- String text,
- List<
Widget> builder(- T
- int? flex,
- double? minWidth,
- double? maxWidth,
- Alignment? alignment,
- CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.start,
- MainAxisAlignment mainAxisAlignment = MainAxisAlignment.center,
- double spacing = 4.0,
- String? key,
- TFilterType? filterType,
- bool filterable = false,
- List<
TFilterOperator> ? filterOperators, - List? filterItems,
- TFilterDef<
T> ? filterDef, - double widthEstimator(
- T data
- bool flattenOnMobile = false,
- String mobileKeyPrefixBuilder()?,
- List<
TKeyValue> keyValuesBuilder(- T data
Creates a header for displaying multiple widgets vertically in a column in table cells.
Implementation
TTableHeader.column(
this.text,
List<Widget> Function(T) builder, {
this.flex,
this.minWidth,
this.maxWidth,
this.alignment,
CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.start,
MainAxisAlignment mainAxisAlignment = MainAxisAlignment.center,
double spacing = 4.0,
this.key,
this.filterType,
this.filterable = false,
this.filterOperators,
this.filterItems,
this.filterDef,
this.widthEstimator,
this.flattenOnMobile = false,
this.mobileKeyPrefixBuilder,
this.keyValuesBuilder,
}) : map = null,
builder = ((ctx, item, __) {
final isDense = TTableScope.maybeOf(ctx)?.dense ?? false;
final widgets = builder(item.data);
if (widgets.isEmpty) return const SizedBox.shrink();
final effectiveSpacing = isDense ? spacing * 0.75 : spacing;
return Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: mainAxisAlignment,
crossAxisAlignment: crossAxisAlignment,
children: [
for (int i = 0; i < widgets.length; i++) ...[
if (i > 0) SizedBox(height: effectiveSpacing),
widgets[i],
],
],
);
});