fluttercommunity / flutter-draggable-scrollbar

Draggable Scrollbar - A scrollbar that can be dragged for quickly navigation through a vertical list. Additional option is showing label next to scrollthumb with information about current item. Maintainer: @marica27
https://pub.dev/packages/draggable_scrollbar
MIT License
441 stars 77 forks source link

Scrollbar length calculated incorrectly when different widgets inside ListView #25

Open isorensen opened 4 years ago

isorensen commented 4 years ago

Summary

I have a ListView.builder with two widgets as children. One of them is a Widget RichText that has many TextSpan children inside. The other is just a RaisedButton.

Expected

I hoped that the Scrollbar length would be dragged through the whole list.

What actually happens

Around the middle of the scrollbar length, the list already reaches the end.

Code

DraggableScrollbar.semicircle(
                              controller: _scrollController,
                              child: ListView.builder(
                                controller: _scrollController,
                                itemCount: _listWidgets.length,
                                itemBuilder: (context, index) {
                                  return _listWidgets[index];
                                },
                              ),
                            ),
List<Widget> listWidgets(CcbDataPreview ccbDataPreview) {
    List<Widget> _list = [];
    CcbData _ccbData = CcbData(
      ccbDataPreview: ccbDataPreview,
      invertTextColors: true,
    );
    _list.add(_ccbData.clausesAndParagraphs);
    _list.add(cancelCcbButton());
    return _list;
  }

cancelCcbButton is just an implementation of a RaisedButton.

Screenshots

At this point, the list is already at its end, but scrollbar in the middle.

image

As you can see, it's the same screen, and now the scroll was just dragged to the end, without any movement in the screen.

image