initCanDrag method
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;
}
}
}
}
}