Modified DataRow to be disabled when onSelectChanged is not set (#80184)
This change prevents DataRow from being enabled when onSelectChanged is null.
This commit is contained in:
parent
728a193383
commit
430c57eb3f
@ -1018,7 +1018,7 @@ class DataTable extends StatelessWidget {
|
|||||||
tableRows[rowIndex].children![0] = _buildCheckbox(
|
tableRows[rowIndex].children![0] = _buildCheckbox(
|
||||||
context: context,
|
context: context,
|
||||||
checked: row.selected,
|
checked: row.selected,
|
||||||
onRowTap: () => row.onSelectChanged?.call(!row.selected),
|
onRowTap: row.onSelectChanged == null ? null : () => row.onSelectChanged?.call(!row.selected),
|
||||||
onCheckboxChanged: row.onSelectChanged,
|
onCheckboxChanged: row.onSelectChanged,
|
||||||
overlayColor: row.color ?? effectiveDataRowColor,
|
overlayColor: row.color ?? effectiveDataRowColor,
|
||||||
tristate: false,
|
tristate: false,
|
||||||
@ -1084,7 +1084,7 @@ class DataTable extends StatelessWidget {
|
|||||||
onLongPress: cell.onLongPress,
|
onLongPress: cell.onLongPress,
|
||||||
onTapCancel: cell.onTapCancel,
|
onTapCancel: cell.onTapCancel,
|
||||||
onTapDown: cell.onTapDown,
|
onTapDown: cell.onTapDown,
|
||||||
onSelectChanged: () => row.onSelectChanged?.call(!row.selected),
|
onSelectChanged: row.onSelectChanged == null ? null : () => row.onSelectChanged?.call(!row.selected),
|
||||||
overlayColor: row.color ?? effectiveDataRowColor,
|
overlayColor: row.color ?? effectiveDataRowColor,
|
||||||
);
|
);
|
||||||
rowIndex += 1;
|
rowIndex += 1;
|
||||||
|
@ -1629,4 +1629,39 @@ void main() {
|
|||||||
_customHorizontalMargin,
|
_customHorizontalMargin,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testWidgets('DataRow is disabled when onSelectChanged is not set', (WidgetTester tester) async {
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: Material(
|
||||||
|
child: DataTable(
|
||||||
|
columns: const <DataColumn>[
|
||||||
|
DataColumn(label: Text('Col1')),
|
||||||
|
DataColumn(label: Text('Col2')),
|
||||||
|
],
|
||||||
|
rows: <DataRow>[
|
||||||
|
DataRow(cells: const <DataCell>[
|
||||||
|
DataCell(Text('Hello')),
|
||||||
|
DataCell(Text('world')),
|
||||||
|
],
|
||||||
|
onSelectChanged: (bool? value) {},
|
||||||
|
),
|
||||||
|
const DataRow(cells: <DataCell>[
|
||||||
|
DataCell(Text('Bug')),
|
||||||
|
DataCell(Text('report')),
|
||||||
|
]),
|
||||||
|
const DataRow(cells: <DataCell>[
|
||||||
|
DataCell(Text('GitHub')),
|
||||||
|
DataCell(Text('issue')),
|
||||||
|
]),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.widgetWithText(TableRowInkWell, 'Hello'), findsOneWidget);
|
||||||
|
expect(find.widgetWithText(TableRowInkWell, 'Bug'), findsNothing);
|
||||||
|
expect(find.widgetWithText(TableRowInkWell, 'GitHub'), findsNothing);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user