From 0b78be3c08c8078894c970004d936cb9c06c1f6d Mon Sep 17 00:00:00 2001 From: Kate Lovett Date: Thu, 7 Dec 2023 13:19:06 -0600 Subject: [PATCH] [two_dimensional_scrollables] Expose addAutomaticKeepAlives in Table delegates (#5597) Fixes https://github.com/flutter/flutter/issues/133583 This was waiting on the stable release that add keep alive support. Now it is available in the tableView delegates. --- .../two_dimensional_scrollables/CHANGELOG.md | 3 ++- .../example/pubspec.yaml | 4 ++-- .../lib/src/table_view/table_delegate.dart | 2 ++ .../two_dimensional_scrollables/pubspec.yaml | 6 ++--- .../test/table_view/table_delegate_test.dart | 22 +++++++++++++++++++ 5 files changed, 31 insertions(+), 6 deletions(-) diff --git a/packages/two_dimensional_scrollables/CHANGELOG.md b/packages/two_dimensional_scrollables/CHANGELOG.md index b61ddbd53a56..a47fd6b40c76 100644 --- a/packages/two_dimensional_scrollables/CHANGELOG.md +++ b/packages/two_dimensional_scrollables/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 0.0.5 +* Exposes addAutomaticKeepAlives in TableCellBuilderDelegate and TableCellListDelegate * Fixes bug where having one reversed axis caused incorrect painting of a pinned row. * Adds support for BorderRadius in TableSpanDecorations. diff --git a/packages/two_dimensional_scrollables/example/pubspec.yaml b/packages/two_dimensional_scrollables/example/pubspec.yaml index a36e620a5562..675a9c3991f1 100644 --- a/packages/two_dimensional_scrollables/example/pubspec.yaml +++ b/packages/two_dimensional_scrollables/example/pubspec.yaml @@ -6,8 +6,8 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: '>=3.1.0 <4.0.0' - flutter: ">=3.13.0" + sdk: '>=3.2.0 <4.0.0' + flutter: ">=3.16.0" dependencies: flutter: diff --git a/packages/two_dimensional_scrollables/lib/src/table_view/table_delegate.dart b/packages/two_dimensional_scrollables/lib/src/table_view/table_delegate.dart index 86accc4f999b..5215413945b0 100644 --- a/packages/two_dimensional_scrollables/lib/src/table_view/table_delegate.dart +++ b/packages/two_dimensional_scrollables/lib/src/table_view/table_delegate.dart @@ -125,6 +125,7 @@ class TableCellBuilderDelegate extends TwoDimensionalChildBuilderDelegate int pinnedColumnCount = 0, int pinnedRowCount = 0, super.addRepaintBoundaries, + super.addAutomaticKeepAlives, required TableViewCellBuilder cellBuilder, required TableSpanBuilder columnBuilder, required TableSpanBuilder rowBuilder, @@ -219,6 +220,7 @@ class TableCellListDelegate extends TwoDimensionalChildListDelegate int pinnedColumnCount = 0, int pinnedRowCount = 0, super.addRepaintBoundaries, + super.addAutomaticKeepAlives, required List> cells, required TableSpanBuilder columnBuilder, required TableSpanBuilder rowBuilder, diff --git a/packages/two_dimensional_scrollables/pubspec.yaml b/packages/two_dimensional_scrollables/pubspec.yaml index 9a392a8bf4b2..34fecd511114 100644 --- a/packages/two_dimensional_scrollables/pubspec.yaml +++ b/packages/two_dimensional_scrollables/pubspec.yaml @@ -1,12 +1,12 @@ name: two_dimensional_scrollables description: Widgets that scroll using the two dimensional scrolling foundation. -version: 0.0.4 +version: 0.0.5 repository: https://github.com/flutter/packages/tree/main/packages/two_dimensional_scrollables issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+two_dimensional_scrollables%22+ environment: - sdk: '>=3.1.0 <4.0.0' - flutter: ">=3.13.0" + sdk: '>=3.2.0 <4.0.0' + flutter: ">=3.16.0" dependencies: flutter: diff --git a/packages/two_dimensional_scrollables/test/table_view/table_delegate_test.dart b/packages/two_dimensional_scrollables/test/table_view/table_delegate_test.dart index 98e88fcfd55e..5d919222f75d 100644 --- a/packages/two_dimensional_scrollables/test/table_view/table_delegate_test.dart +++ b/packages/two_dimensional_scrollables/test/table_view/table_delegate_test.dart @@ -11,6 +11,18 @@ const Widget cell = SizedBox.shrink(); void main() { group('TableCellBuilderDelegate', () { + test('exposes addAutomaticKeepAlives from super class', () { + final TableCellBuilderDelegate delegate = TableCellBuilderDelegate( + cellBuilder: (_, __) => cell, + columnBuilder: (_) => span, + rowBuilder: (_) => span, + columnCount: 5, + rowCount: 6, + addAutomaticKeepAlives: false, + ); + expect(delegate.addAutomaticKeepAlives, isFalse); + }); + test('asserts valid counts for rows and columns', () { TableCellBuilderDelegate? delegate; expect( @@ -205,6 +217,16 @@ void main() { }); group('TableCellListDelegate', () { + test('exposes addAutomaticKeepAlives from super class', () { + final TableCellListDelegate delegate = TableCellListDelegate( + cells: >[[]], + columnBuilder: (_) => span, + rowBuilder: (_) => span, + addAutomaticKeepAlives: false, + ); + expect(delegate.addAutomaticKeepAlives, isFalse); + }); + test('asserts valid counts for rows and columns', () { TableCellListDelegate? delegate; expect(