Jaime Blasco
Committed by GitHub

Merge pull request #164 from onikiri2007/master

Fix Using the ModalScrollController.of(context) doesnt allow dismissing scrollable views
@@ -261,14 +261,18 @@ class ModalBottomSheetState extends State<ModalBottomSheet> @@ -261,14 +261,18 @@ class ModalBottomSheetState extends State<ModalBottomSheet>
261 assert(notification.context != null); 261 assert(notification.context != null);
262 //Check if scrollController is used 262 //Check if scrollController is used
263 if (!_scrollController.hasClients) return; 263 if (!_scrollController.hasClients) return;
264 - //Check if there is more than 1 attached ScrollController e.g. swiping page in PageView  
265 - // ignore: invalid_use_of_protected_member  
266 - if (_scrollController.positions.length > 1) return;  
267 -  
268 - if (_scrollController !=  
269 - Scrollable.of(notification.context!)!.widget.controller) return;  
270 264
271 - final scrollPosition = _scrollController.position; 265 + ScrollPosition scrollPosition;
  266 + // ignore: invalid_use_of_protected_member
  267 + if (_scrollController.positions.length > 1) {
  268 + // ignore: invalid_use_of_protected_member
  269 + scrollPosition = _scrollController.positions
  270 + .firstWhere((p) => p.isScrollingNotifier.value,
  271 + // ignore: invalid_use_of_protected_member
  272 + orElse: () => _scrollController.positions.first);
  273 + } else {
  274 + scrollPosition = _scrollController.position;
  275 + }
272 276
273 if (scrollPosition.axis == Axis.horizontal) return; 277 if (scrollPosition.axis == Axis.horizontal) return;
274 278