title: Flutter ScrollController is not work properly
body: <p>In my flutter app, I try to use scrollController to scroll listview in listBuilder but ScrollController is not working properly. It doesn't show errors or exceptions but the List is not scrolling. Even I use scroll controller jumpTo or animateTo it does not work. Even I give the maximum value like 1000 and 20000 in animateTo and jumpTo it does not scroll.</p>
  <pre><code>import 'package:flutter/gestures.dart';
  import 'package:flutter/material.dart';
  
  class Class extends StatefulWidget {
  final int data;
  final List list;
  Class({required this.data, required this.list});
  @override
  _ClassState createState() =&gt; _ClassState();
  }
  
  class _ClassState extends State&lt;Class&gt; with TickerProviderStateMixin {
  late Animation&lt;double&gt; animation;
  late AnimationController animationController;
  late double height = 0;
  
  final List lst = [
   [true, true, true, true],
  [false, false, false, false],
  [true, false, false, false],
  [true, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
  ];
  
  void initState() {
    super.initState();
  
  animationController =
      AnimationController(vsync: this, duration: Duration(seconds: 5));
  
  animation = Tween&lt;double&gt;(begin: 0, end: 200).animate(animationController)
    ..addListener(() {
      setState(() {});
    })
    ..addStatusListener((status) {});
  animationController.forward();
   }
  
  Widget container(data) {
  return Stack(
    children: [
      GestureDetector(
        onTap: () {
          setState(() {
            animationController.forward();
          });
        },
        child: Transform.translate(
          offset: Offset(0, animation.value),
          child: Container(
            color: lst[data][0] ? Colors.black : Colors.transparent,
            height: MediaQuery.of(context).size.height / 4,
            width: MediaQuery.of(context).size.width / 4,
            child: Text('$data'),
          ),
        ),
      ),
    ],
  );
   }
  
   @override
   Widget build(BuildContext context) {
  return container(widget.data);
    }
  
   @override
   void dispose() {
  super.dispose();
  animationController.dispose();
    }
   }
  
  class Yes extends StatefulWidget {
   @override
  _YesState createState() =&gt; _YesState();
    }
  
   class _YesState extends State&lt;Yes&gt; {
     List lst = [
  [true, true, true, true],
  [false, false, false, false],
  [true, false, false, false],
  [true, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
  [false, false, false, false],
  [true, false, false, false],
     ];
  
   ScrollController _scrollController = ScrollController();
  
   void initState() {
  if (_scrollController.hasClients) {
    super.initState();
    // _scrollController.animateTo(0,
    //     // _scrollController.offset + MediaQuery.of(context).size.height/6,
    //     duration: Duration(seconds: 2),
    //     curve: Curves.linear);
    _scrollController.jumpTo(_scrollController.position.maxScrollExtent);
      }
     }
  
   @override
   Widget build(BuildContext context) {
      return ListView(
    controller: _scrollController,
    //  physics: NeverScrollableScrollPhysics(),
    children: [
      ListView.builder(
            // physics: NeverScrollableScrollPhysics(),
          reverse: true,
          itemCount: lst.length,
          controller: _scrollController,
          itemBuilder: (BuildContext context, int position) {
            return Stack(children: [Class(data: position, list: lst)]);
          }),
    ],
  );
    }
     }
  </code></pre>