Committed by
GitHub
Merge pull request #164 from onikiri2007/master
Fix Using the ModalScrollController.of(context) doesnt allow dismissing scrollable views
Showing
1 changed file
with
11 additions
and
7 deletions
@@ -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 |
-
Please register or login to post a comment