Fixed PaginatedDataTable
not using dataRowMinHeight
and dataRowMaxHeight
from Theme (#133634)
`PaginatedDataTable` will now make use of `dataRowMinHeight` and `dataRowMaxHeight` from the Theme *List which issues are fixed by this PR. You must list at least one issue.* Resolves #133633
This commit is contained in:
parent
eb77b525c2
commit
1b1c8a1607
@ -122,8 +122,8 @@ class PaginatedDataTable extends StatefulWidget {
|
|||||||
assert(dataRowMinHeight == null || dataRowMaxHeight == null || dataRowMaxHeight >= dataRowMinHeight),
|
assert(dataRowMinHeight == null || dataRowMaxHeight == null || dataRowMaxHeight >= dataRowMinHeight),
|
||||||
assert(dataRowHeight == null || (dataRowMinHeight == null && dataRowMaxHeight == null),
|
assert(dataRowHeight == null || (dataRowMinHeight == null && dataRowMaxHeight == null),
|
||||||
'dataRowHeight ($dataRowHeight) must not be set if dataRowMinHeight ($dataRowMinHeight) or dataRowMaxHeight ($dataRowMaxHeight) are set.'),
|
'dataRowHeight ($dataRowHeight) must not be set if dataRowMinHeight ($dataRowMinHeight) or dataRowMaxHeight ($dataRowMaxHeight) are set.'),
|
||||||
dataRowMinHeight = dataRowHeight ?? dataRowMinHeight ?? kMinInteractiveDimension,
|
dataRowMinHeight = dataRowHeight ?? dataRowMinHeight,
|
||||||
dataRowMaxHeight = dataRowHeight ?? dataRowMaxHeight ?? kMinInteractiveDimension,
|
dataRowMaxHeight = dataRowHeight ?? dataRowMaxHeight,
|
||||||
assert(rowsPerPage > 0),
|
assert(rowsPerPage > 0),
|
||||||
assert(() {
|
assert(() {
|
||||||
if (onRowsPerPageChanged != null) {
|
if (onRowsPerPageChanged != null) {
|
||||||
@ -192,13 +192,13 @@ class PaginatedDataTable extends StatefulWidget {
|
|||||||
///
|
///
|
||||||
/// This value is optional and defaults to [kMinInteractiveDimension] if not
|
/// This value is optional and defaults to [kMinInteractiveDimension] if not
|
||||||
/// specified.
|
/// specified.
|
||||||
final double dataRowMinHeight;
|
final double? dataRowMinHeight;
|
||||||
|
|
||||||
/// The maximum height of each row (excluding the row that contains column headings).
|
/// The maximum height of each row (excluding the row that contains column headings).
|
||||||
///
|
///
|
||||||
/// This value is optional and defaults to kMinInteractiveDimension if not
|
/// This value is optional and defaults to [kMinInteractiveDimension] if not
|
||||||
/// specified.
|
/// specified.
|
||||||
final double dataRowMaxHeight;
|
final double? dataRowMaxHeight;
|
||||||
|
|
||||||
/// The height of the heading row.
|
/// The height of the heading row.
|
||||||
///
|
///
|
||||||
|
@ -1022,6 +1022,38 @@ void main() {
|
|||||||
await binding.setSurfaceSize(originalSize);
|
await binding.setSurfaceSize(originalSize);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testWidgets('dataRowMinHeight & dataRowMaxHeight if not set will use DataTableTheme', (WidgetTester tester) async {
|
||||||
|
addTearDown(() => binding.setSurfaceSize(null));
|
||||||
|
await binding.setSurfaceSize(const Size(800, 800));
|
||||||
|
|
||||||
|
const double minMaxDataRowHeight = 30.0;
|
||||||
|
|
||||||
|
await tester.pumpWidget(MaterialApp(
|
||||||
|
theme: ThemeData(
|
||||||
|
dataTableTheme: const DataTableThemeData(
|
||||||
|
dataRowMinHeight: minMaxDataRowHeight,
|
||||||
|
dataRowMaxHeight: minMaxDataRowHeight,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
home: PaginatedDataTable(
|
||||||
|
header: const Text('Test table'),
|
||||||
|
source: TestDataSource(allowSelection: true),
|
||||||
|
columns: const <DataColumn>[
|
||||||
|
DataColumn(label: Text('Name')),
|
||||||
|
DataColumn(label: Text('Calories'), numeric: true),
|
||||||
|
DataColumn(label: Text('Generation')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
final Container rowContainer = tester.widget<Container>(find.descendant(
|
||||||
|
of: find.byType(Table),
|
||||||
|
matching: find.byType(Container),
|
||||||
|
).last);
|
||||||
|
expect(rowContainer.constraints?.minHeight, minMaxDataRowHeight);
|
||||||
|
expect(rowContainer.constraints?.maxHeight, minMaxDataRowHeight);
|
||||||
|
});
|
||||||
|
|
||||||
testWidgets('PaginatedDataTable custom checkboxHorizontalMargin properly applied', (WidgetTester tester) async {
|
testWidgets('PaginatedDataTable custom checkboxHorizontalMargin properly applied', (WidgetTester tester) async {
|
||||||
const double customCheckboxHorizontalMargin = 15.0;
|
const double customCheckboxHorizontalMargin = 15.0;
|
||||||
const double customHorizontalMargin = 10.0;
|
const double customHorizontalMargin = 10.0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user