From dcfbfcca6ffc08eafd34b4903db70ebff10bf14d Mon Sep 17 00:00:00 2001 From: Altynbek Aidarbekov Date: Thu, 10 Aug 2023 19:58:40 +0600 Subject: [PATCH] [scrollable_positioned_list] remove code duplication in _ScrollablePositionedListState.build --- .../lib/src/scrollable_positioned_list.dart | 65 ++++++++----------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/packages/scrollable_positioned_list/lib/src/scrollable_positioned_list.dart b/packages/scrollable_positioned_list/lib/src/scrollable_positioned_list.dart index 60045e9b..b8224fbb 100644 --- a/packages/scrollable_positioned_list/lib/src/scrollable_positioned_list.dart +++ b/packages/scrollable_positioned_list/lib/src/scrollable_positioned_list.dart @@ -419,25 +419,7 @@ class _ScrollablePositionedListState extends State opacity: ReverseAnimation(opacity), child: NotificationListener( onNotification: (_) => _isTransitioning, - child: PositionedList( - itemBuilder: widget.itemBuilder, - separatorBuilder: widget.separatorBuilder, - itemCount: widget.itemCount, - positionedIndex: primary.target, - controller: primary.scrollController, - itemPositionsNotifier: primary.itemPositionsNotifier, - scrollDirection: widget.scrollDirection, - reverse: widget.reverse, - cacheExtent: cacheExtent, - alignment: primary.alignment, - physics: widget.physics, - shrinkWrap: widget.shrinkWrap, - addSemanticIndexes: widget.addSemanticIndexes, - semanticChildCount: widget.semanticChildCount, - padding: widget.padding, - addAutomaticKeepAlives: widget.addAutomaticKeepAlives, - addRepaintBoundaries: widget.addRepaintBoundaries, - ), + child: _buildPositionedList(primary, cacheExtent), ), ), ), @@ -449,25 +431,7 @@ class _ScrollablePositionedListState extends State opacity: opacity, child: NotificationListener( onNotification: (_) => false, - child: PositionedList( - itemBuilder: widget.itemBuilder, - separatorBuilder: widget.separatorBuilder, - itemCount: widget.itemCount, - itemPositionsNotifier: secondary.itemPositionsNotifier, - positionedIndex: secondary.target, - controller: secondary.scrollController, - scrollDirection: widget.scrollDirection, - reverse: widget.reverse, - cacheExtent: cacheExtent, - alignment: secondary.alignment, - physics: widget.physics, - shrinkWrap: widget.shrinkWrap, - addSemanticIndexes: widget.addSemanticIndexes, - semanticChildCount: widget.semanticChildCount, - padding: widget.padding, - addAutomaticKeepAlives: widget.addAutomaticKeepAlives, - addRepaintBoundaries: widget.addRepaintBoundaries, - ), + child: _buildPositionedList(secondary, cacheExtent), ), ), ), @@ -478,6 +442,31 @@ class _ScrollablePositionedListState extends State ); } + PositionedList _buildPositionedList( + _ListDisplayDetails listDisplayDetails, + double cacheExtent, + ) { + return PositionedList( + itemBuilder: widget.itemBuilder, + separatorBuilder: widget.separatorBuilder, + itemCount: widget.itemCount, + positionedIndex: listDisplayDetails.target, + controller: listDisplayDetails.scrollController, + itemPositionsNotifier: listDisplayDetails.itemPositionsNotifier, + scrollDirection: widget.scrollDirection, + reverse: widget.reverse, + cacheExtent: cacheExtent, + alignment: listDisplayDetails.alignment, + physics: widget.physics, + shrinkWrap: widget.shrinkWrap, + addSemanticIndexes: widget.addSemanticIndexes, + semanticChildCount: widget.semanticChildCount, + padding: widget.padding, + addAutomaticKeepAlives: widget.addAutomaticKeepAlives, + addRepaintBoundaries: widget.addRepaintBoundaries, + ); + } + double _cacheExtent(BoxConstraints constraints) => max( (widget.scrollDirection == Axis.vertical ? constraints.maxHeight