initCanDrag method

void initCanDrag(
  1. BuildContext context,
  2. double dx, [
  3. String? type
])

Implementation

void initCanDrag(BuildContext context, double dx, [String? type]) {
  distance = dx - dragDownDx;
  isDragLeft = distance > 0;
  PageView? pageview = context.findAncestorWidgetOfExactType<PageView>();
  if (pageview != null) {
    PageController? controller = pageview.controller;
    if (controller != null) {
      final position = controller.position;
      if (isDragLeft &&
          (parentDrag == CatchParentDrag.all ||
              parentDrag == CatchParentDrag.left) &&
          (controller.page ?? 0) > 0) {
        canDrag = true;
      } else if (!isDragLeft &&
          (parentDrag == CatchParentDrag.all ||
              parentDrag == CatchParentDrag.right)) {
        double max = getMaxPage(position.maxScrollExtent,
            position.viewportDimension, controller.viewportFraction);
        if ((controller.page ?? 0) < max) {
          canDrag = true;
        }
      }
    }
  }
}