- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 42
 
Open
Description
Describe the bug
The problem is that the BouncingScrollPhysics mode refuses to work if your page is wrapped in DismissiblePage. This may be important, but my usage looks like this:
return MyDismissiblePage(
          hitTestBehavior: HitTestBehavior.opaque,
          backgroundColor: Colors.black,
          minRadius: 0.0,
          maxRadius: 24.0,
          dragSensitivity: 0.6,
          startingOpacity: 0.5,
          onDismissed: () => Navigator.of(context).pop(),
          direction: DismissiblePageDismissDirection.startToEnd,
          dismissThresholds: const {
            DismissiblePageDismissDirection.startToEnd: 0.4,
          },
          reverseDuration: const Duration(milliseconds: 100),
          maxTransformValue: 0.5,
          child: child,
        );DismissiblePage version: problems on 1.0.2 and 1.0.3 from git
Additional context
The solution looks quite simple, because the problem is a line inside the build method in DismissiblePage:
return ScrollConfiguration(
        behavior: const _DismissiblePageScrollBehavior(),
        child: MultiAxisDismissiblePage(If you remove ScrollConfiguration wrapper then scrolling will work great, as expected. I wrote mini code to make everything work as expected. Add the necessary show to export for your case:
import 'package:dismissible_page/dismissible_page.dart'
    show
        DismissiblePage,
        DismissiblePageDismissDirection,
        // ignore: invalid_use_of_visible_for_testing_member
        MultiAxisDismissiblePage,
        // ignore: invalid_use_of_visible_for_testing_member
        SingleAxisDismissiblePage;
import 'package:flutter/gestures.dart' show DragStartBehavior;
import 'package:flutter/material.dart';
export 'package:dismissible_page/dismissible_page.dart'
    show DismissiblePageDismissDirection, TransparentRoute;
class MyDismissiblePage extends DismissiblePage {
  const MyDismissiblePage({
    required super.child,
    required super.onDismissed,
    super.onDragStart,
    super.onDragEnd,
    super.onDragUpdate,
    super.isFullScreen = true,
    super.disabled = false,
    super.backgroundColor = Colors.black,
    super.direction = DismissiblePageDismissDirection.horizontal,
    super.dismissThresholds = const <DismissiblePageDismissDirection, double>{},
    super.dragStartBehavior = DragStartBehavior.down,
    super.dragSensitivity = 0.7,
    super.minRadius = 7,
    super.minScale = .85,
    super.maxRadius = 30,
    super.maxTransformValue = .4,
    super.startingOpacity = 1,
    super.hitTestBehavior = HitTestBehavior.opaque,
    super.reverseDuration = const Duration(milliseconds: 200),
    Key? key,
  }) : super(key: key);
  @override
  Widget build(BuildContext context) {
    final contentPadding =
        isFullScreen ? EdgeInsets.zero : MediaQuery.of(context).padding;
    if (disabled) {
      return DecoratedBox(
        decoration: BoxDecoration(color: backgroundColor),
        child: Padding(
          padding: contentPadding,
          child: ClipRRect(
            borderRadius: BorderRadius.circular(minRadius),
            child: child,
          ),
        ),
      );
    }
    if (direction == DismissiblePageDismissDirection.multi) {
      return MultiAxisDismissiblePage(
        onDismissed: onDismissed,
        isFullScreen: isFullScreen,
        backgroundColor: backgroundColor,
        direction: direction,
        dismissThresholds: dismissThresholds,
        dragStartBehavior: dragStartBehavior,
        dragSensitivity: dragSensitivity,
        minRadius: minRadius,
        minScale: minScale,
        maxRadius: maxRadius,
        maxTransformValue: maxTransformValue,
        startingOpacity: startingOpacity,
        onDragStart: onDragStart,
        onDragEnd: onDragEnd,
        onDragUpdate: onDragUpdate,
        reverseDuration: reverseDuration,
        hitTestBehavior: hitTestBehavior,
        contentPadding: contentPadding,
        child: child,
      );
    } else {
      return SingleAxisDismissiblePage(
        onDismissed: onDismissed,
        isFullScreen: isFullScreen,
        backgroundColor: backgroundColor,
        direction: direction,
        dismissThresholds: dismissThresholds,
        dragStartBehavior: dragStartBehavior,
        dragSensitivity: dragSensitivity,
        minRadius: minRadius,
        minScale: minScale,
        maxRadius: maxRadius,
        maxTransformValue: maxTransformValue,
        startingOpacity: startingOpacity,
        onDragStart: onDragStart,
        onDragEnd: onDragEnd,
        onDragUpdate: onDragUpdate,
        reverseDuration: reverseDuration,
        hitTestBehavior: hitTestBehavior,
        contentPadding: contentPadding,
        child: child,
      );
    }
  }
}Thank you very much to the author for the wonderful package!
Metadata
Metadata
Assignees
Labels
No labels