Home > Software engineering >  Flutter How do I change the scroll speed in ListView on the mouse wheel?
Flutter How do I change the scroll speed in ListView on the mouse wheel?

Time:12-16

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.

CodePudding user response:

   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(...),
    );
  }
}
  • Related