Max Onishi

fix modal dismiss issue

@@ -49,7 +49,7 @@ class ModalBottomSheet extends StatefulWidget { @@ -49,7 +49,7 @@ class ModalBottomSheet extends StatefulWidget {
49 required this.expanded, 49 required this.expanded,
50 required this.onClosing, 50 required this.onClosing,
51 required this.child, 51 required this.child,
52 - }) : assert(enableDrag != null), 52 + }) : assert(enableDrag != null),
53 assert(onClosing != null), 53 assert(onClosing != null),
54 assert(child != null), 54 assert(child != null),
55 super(key: key); 55 super(key: key);
@@ -265,14 +265,18 @@ class _ModalBottomSheetState extends State<ModalBottomSheet> @@ -265,14 +265,18 @@ class _ModalBottomSheetState extends State<ModalBottomSheet>
265 assert(notification.context != null); 265 assert(notification.context != null);
266 //Check if scrollController is used 266 //Check if scrollController is used
267 if (!_scrollController.hasClients) return; 267 if (!_scrollController.hasClients) return;
268 - //Check if there is more than 1 attached ScrollController e.g. swiping page in PageView  
269 - // ignore: invalid_use_of_protected_member  
270 - if (_scrollController.positions.length > 1) return;  
271 -  
272 - if (_scrollController !=  
273 - Scrollable.of(notification.context!)!.widget.controller) return;  
274 268
275 - final scrollPosition = _scrollController.position; 269 + ScrollPosition scrollPosition;
  270 + // ignore: invalid_use_of_protected_member
  271 + if (_scrollController.positions.length > 1) {
  272 + // ignore: invalid_use_of_protected_member
  273 + scrollPosition = _scrollController.positions
  274 + .firstWhere((p) => p.isScrollingNotifier.value,
  275 + // ignore: invalid_use_of_protected_member
  276 + orElse: () => _scrollController.positions.first);
  277 + } else {
  278 + scrollPosition = _scrollController.position;
  279 + }
276 280
277 if (scrollPosition.axis == Axis.horizontal) return; 281 if (scrollPosition.axis == Axis.horizontal) return;
278 282