TTableHeader<T, K>.numberField constructor
TTableHeader<T, K>.numberField (
- String text,
- num? get(
- T
- void set(
- T,
- num?
- int? flex,
- double? minWidth,
- double? maxWidth,
- Alignment? alignment,
- String? error(
- T
- String? placeholder,
- Widget displayBuilder(
- BuildContext ctx,
- T data
- String? key,
- TFilterType filterType = TFilterType.number,
- bool filterable = true,
- List<
TFilterOperator> ? filterOperators, - List? filterItems,
- TFilterDef<
T> ? filterDef, - double widthEstimator(
- T data
Creates an editable number field header.
Implementation
TTableHeader.numberField(
String text,
num? Function(T) get,
void Function(T, num?) set, {
int? flex,
double? minWidth,
double? maxWidth,
Alignment? alignment,
String? Function(T data)? error,
String? placeholder,
Widget Function(BuildContext ctx, T data)? displayBuilder,
String? key,
TFilterType filterType = TFilterType.number,
bool filterable = true,
List<TFilterOperator>? filterOperators,
List<dynamic>? filterItems,
TFilterDef<T>? filterDef,
double Function(T data)? widthEstimator,
}) : this.editable(
text,
get: get,
flex: flex,
minWidth: minWidth,
maxWidth: maxWidth,
alignment: alignment,
error: error,
placeholder: placeholder,
displayBuilder: displayBuilder,
key: key,
filterType: filterType,
filterable: filterable,
filterOperators: filterOperators,
filterItems: filterItems,
filterDef: filterDef,
widthEstimator: widthEstimator ??
((data) {
final v = get(data);
final str = v?.toString() ?? placeholder ?? '';
final w = str.isNotEmpty ? TTableTheme.measureTextWidth(str) : 0.0;
return math.max(w + 56.0, 90.0);
}),
builder: (ctx, data) {
final style = TTableScope.maybeOf(ctx)?.contentTextStyle ?? ctx.theme.tableTheme.rowCardTheme.contentTextStyle;
final fontSize = style?.fontSize ?? 13.6;
return TNumberField<num>(
theme: ctx.theme.numberFieldTheme.copyWith(
decorationType: TInputDecorationType.none,
labelPosition: TLabelPosition.aboveField,
padding: EdgeInsets.zero,
fontSize: fontSize,
height: fontSize + 6,
splitStepper: true,
),
placeholder: placeholder,
autoFocus: true,
value: get(data),
onValueChanged: (v) => set(data, v),
);
},
);