Skip to content

Commit

Permalink
Added edge scroll pixels. GPT Generated.
Browse files Browse the repository at this point in the history
  • Loading branch information
kayes-islam-veve committed Jul 27, 2023
1 parent 8347702 commit af91583
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions lib/drag_scroll_container.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@

import 'package:flutter/material.dart';

class DragScrollContainer extends StatefulWidget {
final ScrollController scrollController;
final double scrollRate;
final Widget child;


// Number pixels from the top or bottom edge when scroll starts
final int edgeScrollPixels;

const DragScrollContainer({
super.key,
Key? key,
required this.scrollController,
required this.child,
this.scrollRate = 100.0,
});
this.edgeScrollPixels = 50
}) : super(key: key);

@override
State<DragScrollContainer> createState() => _DragScrollContainerState();
Expand All @@ -35,9 +39,10 @@ class _DragScrollContainerState extends State<DragScrollContainer> {
final containerPosition = containerBox.localToGlobal(Offset.zero);
final containerSize = containerBox.size;

if (event.position.dy < containerPosition.dy && widget.scrollController.position.pixels > 0) {

if ((event.position.dy - containerPosition.dy) <= widget.edgeScrollPixels && widget.scrollController.position.pixels > 0) {
startScrollingUp();
} else if (event.position.dy > containerPosition.dy + containerSize.height &&
} else if ((containerPosition.dy + containerSize.height - event.position.dy) <= widget.edgeScrollPixels &&
widget.scrollController.position.pixels < widget.scrollController.position.maxScrollExtent) {
startScrollingDown();
} else {
Expand Down

0 comments on commit af91583

Please sign in to comment.