Search code examples
windowsflutterdesktop

Flutter How do I change the scroll speed in ListView on the mouse wheel?


I'm a beginner. I'm writing an application on Flutter under Windows. The problem is that the text in the ListView scrolls too slowly by the mouse clip. I tried to override ScrollPhysics, but it didn't work. Please give a working way to change the scrolling speed.


Solution

  •    class ScrollViewTest extends StatelessWidget{
        
        static const _extraScrollSpeed = 80; // your "extra" scroll speed
        final ScrollController _scrollController = ScrollController();
    
      // Constructor
       
        ScrollViewTest({Key? key}) : super(key: key)
        {
            _scrollController.addListener(() {
            ScrollDirection scrollDirection = _scrollController.position.userScrollDirection;
          if (scrollDirection != ScrollDirection.idle)
          {
            double scrollEnd = _scrollController.offset + (scrollDirection == ScrollDirection.reverse
                           ? _extraScrollSpeed
                           : -_extraScrollSpeed);
            scrollEnd = min(
                     _scrollController.position.maxScrollExtent,
                     max(_scrollController.position.minScrollExtent, scrollEnd));
            _scrollController.jumpTo(scrollEnd);
          }
        });
      }
    
      @override
      
        Widget build(BuildContext context)
        {
        
        return SingleChildScrollView(
          controller: _scrollController,
          child: Container(...),
        );
      }
    }