From 2331b90f6c69b8d16e52f37a1d326de692f504d8 Mon Sep 17 00:00:00 2001 From: getBoolean <19920697+getBoolean@users.noreply.github.com> Date: Sun, 14 Apr 2024 17:13:25 -0500 Subject: [PATCH 1/2] fix extra padding on mobile --- .../pagination/lib/src/paginated_view.dart | 155 +++++++++--------- 1 file changed, 79 insertions(+), 76 deletions(-) diff --git a/packages/pub/pagination/lib/src/paginated_view.dart b/packages/pub/pagination/lib/src/paginated_view.dart index 18962629..19fe8db7 100644 --- a/packages/pub/pagination/lib/src/paginated_view.dart +++ b/packages/pub/pagination/lib/src/paginated_view.dart @@ -24,8 +24,7 @@ class PaginatedView extends ConsumerStatefulWidget { this.shrinkWrap = false, this.primary, this.physics, - this.padding = const EdgeInsets.symmetric(vertical: 4.0, horizontal: 2.0), - this.bodyPadding = const EdgeInsets.symmetric(horizontal: 2.0), + this.padding, this.cacheExtent, this.dragStartBehavior = DragStartBehavior.start, this.keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.onDrag, @@ -78,9 +77,7 @@ class PaginatedView extends ConsumerStatefulWidget { final Clip clipBehavior; // BoxScrollView - final EdgeInsetsGeometry padding; - - final EdgeInsetsGeometry bodyPadding; + final EdgeInsetsGeometry? padding; // ListView final ListController? listController; @@ -127,79 +124,85 @@ class _PaginatedViewState extends ConsumerState> { // fail silently as the provider error state is handled inside the ListView } }, - child: Padding( - padding: widget.bodyPadding, + child: MediaQuery.removePadding( + context: context, + removeTop: true, child: Scrollbar( controller: _scrollController, - child: SuperListView.builder( - key: PageStorageKey(widget.restorationId), - scrollDirection: widget.scrollDirection, - reverse: widget.reverse, - controller: _scrollController, - primary: widget.primary, - physics: widget.physics, - shrinkWrap: widget.shrinkWrap, - cacheExtent: widget.cacheExtent, - dragStartBehavior: widget.dragStartBehavior, - keyboardDismissBehavior: widget.keyboardDismissBehavior, - restorationId: widget.restorationId, - clipBehavior: widget.clipBehavior, - padding: widget.padding, - listController: widget.listController, - extentEstimation: widget.extentEstimation, - extentPrecalculationPolicy: widget.extentPrecalculationPolicy, - delayPopulatingCacheArea: widget.delayPopulatingCacheArea, - itemCount: totalResults, - findChildIndexCallback: widget.findChildIndexCallback, - addAutomaticKeepAlives: widget.addAutomaticKeepAlives, - addRepaintBoundaries: widget.addRepaintBoundaries, - addSemanticIndexes: widget.addSemanticIndexes, - itemBuilder: (context, index) { - final page = index ~/ widget.pageSize + 1; - final indexInPage = index % widget.pageSize; - final AsyncValue> responseAsync = - ref.watch(widget.pageItemsProvider(page)); - if (indexInPage >= - (responseAsync.valueOrNull?.results.length ?? 20)) { - return null; - } - return AnimatedSwitcher( - duration: widget.transitionDuration, - switchInCurve: widget.transitionCurve, - switchOutCurve: - widget.reverseTransitionCurve ?? widget.transitionCurve, - child: responseAsync.when( - error: (err, stack) => indexInPage == 0 - ? widget.errorItemBuilder?.call( - context, - page, - indexInPage, - err, - stack, - ) ?? - _ListTileError( - page: page, - indexInPage: indexInPage, - error: 'Could not load page $page', - itemsProviderBuilder: widget.pageItemsProvider, - ) - : const SizedBox.shrink(), - loading: () => - widget.loadingItemBuilder(context, page, indexInPage), - data: (response) { - // This condition only happens if a null itemCount is given - if (indexInPage >= response.results.length) { - return null; - } - final movie = response.results[indexInPage]; - return KeyedSubtree.wrap( - widget.itemBuilder(context, movie, indexInPage), - index, - ); - }, - ), - ); - }, + child: ScrollConfiguration( + behavior: ScrollConfiguration.of(context).copyWith( + scrollbars: false, + ), + child: SuperListView.builder( + key: PageStorageKey(widget.restorationId), + scrollDirection: widget.scrollDirection, + reverse: widget.reverse, + controller: _scrollController, + primary: widget.primary, + physics: widget.physics, + shrinkWrap: widget.shrinkWrap, + cacheExtent: widget.cacheExtent, + dragStartBehavior: widget.dragStartBehavior, + keyboardDismissBehavior: widget.keyboardDismissBehavior, + restorationId: widget.restorationId, + clipBehavior: widget.clipBehavior, + padding: widget.padding, + listController: widget.listController, + extentEstimation: widget.extentEstimation, + extentPrecalculationPolicy: widget.extentPrecalculationPolicy, + delayPopulatingCacheArea: widget.delayPopulatingCacheArea, + itemCount: totalResults, + findChildIndexCallback: widget.findChildIndexCallback, + addAutomaticKeepAlives: widget.addAutomaticKeepAlives, + addRepaintBoundaries: widget.addRepaintBoundaries, + addSemanticIndexes: widget.addSemanticIndexes, + itemBuilder: (context, index) { + final page = index ~/ widget.pageSize + 1; + final indexInPage = index % widget.pageSize; + final AsyncValue> responseAsync = + ref.watch(widget.pageItemsProvider(page)); + if (indexInPage >= + (responseAsync.valueOrNull?.results.length ?? 20)) { + return null; + } + return AnimatedSwitcher( + duration: widget.transitionDuration, + switchInCurve: widget.transitionCurve, + switchOutCurve: + widget.reverseTransitionCurve ?? widget.transitionCurve, + child: responseAsync.when( + error: (err, stack) => indexInPage == 0 + ? widget.errorItemBuilder?.call( + context, + page, + indexInPage, + err, + stack, + ) ?? + _ListTileError( + page: page, + indexInPage: indexInPage, + error: 'Could not load page $page', + itemsProviderBuilder: widget.pageItemsProvider, + ) + : const SizedBox.shrink(), + loading: () => + widget.loadingItemBuilder(context, page, indexInPage), + data: (response) { + // This condition only happens if a null itemCount is given + if (indexInPage >= response.results.length) { + return null; + } + final movie = response.results[indexInPage]; + return KeyedSubtree.wrap( + widget.itemBuilder(context, movie, indexInPage), + index, + ); + }, + ), + ); + }, + ), ), ), ), From 3074dfee63345c36ced650c6d6aa170e41e0a5fb Mon Sep 17 00:00:00 2001 From: getBoolean <19920697+getBoolean@users.noreply.github.com> Date: Sun, 14 Apr 2024 17:30:47 -0500 Subject: [PATCH 2/2] bump version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index c176e88c..5ab9ec16 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: An opinionated template for a Flutter project. publish_to: none -version: 0.7.2 +version: 0.7.3 environment: sdk: ">=3.1.0 <4.0.0"