Committed by
GitHub
Add helper functions to replace text styles and cell content
Showing
1 changed file
with
11 additions
and
2 deletions
@@ -24,6 +24,10 @@ import 'text_style.dart'; | @@ -24,6 +24,10 @@ import 'text_style.dart'; | ||
24 | import 'theme.dart'; | 24 | import 'theme.dart'; |
25 | import 'widget.dart'; | 25 | import 'widget.dart'; |
26 | 26 | ||
27 | +typedef OnCell = Widget? Function(int index, dynamic data, int rowNum); | ||
28 | +typedef OnCellTextStyle = TextStyle? Function( | ||
29 | + int index, dynamic data, int rowNum); | ||
30 | + | ||
27 | mixin TableHelper { | 31 | mixin TableHelper { |
28 | static TextAlign _textAlign(Alignment align) { | 32 | static TextAlign _textAlign(Alignment align) { |
29 | if (align.x == 0) { | 33 | if (align.x == 0) { |
@@ -71,6 +75,8 @@ mixin TableHelper { | @@ -71,6 +75,8 @@ mixin TableHelper { | ||
71 | BoxDecoration? oddRowDecoration, | 75 | BoxDecoration? oddRowDecoration, |
72 | TextDirection? headerDirection, | 76 | TextDirection? headerDirection, |
73 | TextDirection? tableDirection, | 77 | TextDirection? tableDirection, |
78 | + OnCell? cellBuilder, | ||
79 | + OnCellTextStyle? textStyleBuilder, | ||
74 | }) { | 80 | }) { |
75 | assert(headerCount >= 0); | 81 | assert(headerCount >= 0); |
76 | 82 | ||
@@ -161,11 +167,14 @@ mixin TableHelper { | @@ -161,11 +167,14 @@ mixin TableHelper { | ||
161 | : cellDecoration(tableRow.length, cell, rowNum), | 167 | : cellDecoration(tableRow.length, cell, rowNum), |
162 | child: cell is Widget | 168 | child: cell is Widget |
163 | ? cell | 169 | ? cell |
164 | - : Text( | 170 | + : cellBuilder?.call(tableRow.length, cell, rowNum) ?? |
171 | + Text( | ||
165 | cellFormat == null | 172 | cellFormat == null |
166 | ? cell.toString() | 173 | ? cell.toString() |
167 | : cellFormat(tableRow.length, cell), | 174 | : cellFormat(tableRow.length, cell), |
168 | - style: isOdd ? oddCellStyle : cellStyle, | 175 | + style: textStyleBuilder?.call( |
176 | + tableRow.length, cell, rowNum) ?? | ||
177 | + (isOdd ? oddCellStyle : cellStyle), | ||
169 | textAlign: _textAlign(align.resolve(textDirection)), | 178 | textAlign: _textAlign(align.resolve(textDirection)), |
170 | textDirection: tableDirection, | 179 | textDirection: tableDirection, |
171 | ), | 180 | ), |
-
Please register or login to post a comment