flutter listview alphabet index

alphabet scroll list flutter
flutter listview header
flutter listview selected item
flutter listview start at index
flutter scrollbar
flutter draggable scrollbar
flutter web scrollbar
scrollablepositionedlist flutter

How to get the finger movement event in flutter like 'recyclerview alphabet index in android' check the sample image.

I have created a Positioned alphabet index listview but I can't find the current index in DragUpdate.

            var alphabet = ["#","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];

            new Positioned(
                top: .0,
                left: 1,
                bottom: 10,
                width: 55,
                child: Material(
                  borderRadius: BorderRadius.circular(15.0),
                  elevation: 10.0,
                  child: ListView.builder(
                      itemCount: alphabet.length,
                      itemBuilder: (BuildContext context, int index) {

                        return new GestureDetector(
                                (DragUpdateDetails detail) {
                              setState(() {
                                _barOffset += detail.delta.dy;

                              print("Update ${alphabet[index]}");

                             onVerticalDragStart: (DragStartDetails detail) {
                              print("Start ${alphabet[index]}");
                            onVerticalDragEnd: (DragEndDetails detail) {
                              print("End ${alphabet[index]}");
                            onTap: () => print(alphabet[index]),
                            child: new Container(
                              margin: EdgeInsets.only(
                                  left: 20.0, right: 10.0, top: 6.5),
                              height: 15.0,
                              child: new Text('${alphabet[index]}'),

Do the following steps to achieve this.

Step1: Gesture detector for A to Z slider

  1. onVerticalDragUpdate: _onVerticalDragUpdate

  2. onVerticalDragStart: _onVerticalDragStart

Step 2: Add the speech bubble for scrolled alphabet.

Step 3: calculate the index with vertically scrolled position

if ((_offsetContainer + details.delta.dy) >= 0 &&
        (_offsetContainer + details.delta.dy) <=
            (_sizeheightcontainer - _heightscroller)) {
    _offsetContainer += details.delta.dy;
    posSelected =
        ((_offsetContainer / _heightscroller) % _alphabet.length).round();
    _text = _alphabet[posSelected];
    if (_text != _oldtext) {
        for (var i = 0; i < exampleList.length; i++) {
            if (_text
                    .compareTo(exampleList[i].toString().toUpperCase()[0]) == 0) {
                _controller.jumpTo(i * _itemsizeheight);
        _oldtext = _text;

For the complete implementation, check this:


Flutter Alphabetical Indexed ListView, In this article, I'm going to tell you how to make an alphabetical indexed list view in Flutter. So, what is an alphabet indexed list view really? indexed_list_view # Similar to a ListView, but lets you programmatically jump to any item, by index. The index jump happens instantly, no matter if you have millions of items. Limitation: The list is always infinite both to positive and negative indexes. In other words, it can be scrolled indefinitely both to the top and to the bottom.

alphabet_list_scroll_view, A customizable listview with A-Z side scrollbar to fast jump to the item of the selected Quick scroll through list via dragging through alphabets. indexedHeight, double Function(int), query the height of widget with index. We’ve covered the main ListView types above, but they were pretty plain. Flutter offers a lot of options to make them more beautiful. ListTile customization. The Flutter team designed the ListTile widget to handle the normal content that you would want in a list. This means that most of the time there is no need to define a custom layout.

You can try to do something like this:

            child: ListView.builder(
              itemCount: alphabet.length,
              itemBuilder: (BuildContext context, int index) {
                var letterHeight = (SizeConfig.safeBlockVertical * 100) / 33;
                return GestureDetector(
                  onVerticalDragUpdate: (DragUpdateDetails detail) {
                    setState(() {
                      currentPosition += detail.delta.dy;
                  onVerticalDragEnd: (DragEndDetails detail) {
                    setState(() {
                      int letters = currentPosition > 0
                          ? ((currentPosition + letterHeight) / letterHeight)
                          : ((currentPosition - letterHeight) / letterHeight)
                      if (index + letters < alphabet.length) {
                        index += letters;
                      } else {
                        index = alphabet.length;

                      currentPosition = 0;
                      currentLetter = alphabet[index];
                  child: InkWell(
                    onTap: () {
                      setState(() {
                        currentLetter = alphabet[index];
                    child: Container(
                      height: letterHeight,
                      child: Center(
                        child: Text('${alphabet[index]}'),

indexed_list_view, Similar to a ListView, but lets you programmatically jump instantly to any item, by index. Performant for lists of any size. Grouped list package for Flutter. With sticky Headers # A List with Sticky Headers! Basically a flutter ListView in which list items can be grouped to sections. Features. List Items can be separated in groups. For the groups an individual header can be set. Sticky Headers. With Floating Option. Almost all fields from ListView.builder

flutter listview alphabet index, How to get the finger movement event in flutter like 'recyclerview alphabet index in android' check the sample image. I have created a  Add Item to ListView Dynamically in Flutter. In this tutorial, we will learn how to add an item to a ListView dynamically using Expanded widget and ListView widget. This tutorial is an extension of how to build a ListView from List of Items. To build a ListView that can accept items to be added dynamically, wrap ListView in Extended widget.

Vertical scroll with alphabet scroll, child: ListView.builder(. controller: controller,. itemBuilder: (BuildContext context, int index) {. return new Card(. child: new Container(. The Complete Flutter Series is a series of articles focused on cross-platform app development on the Flutter framework for everyone from beginners to experienced mobile developers. In the last…

oom-/AtoZscrollflutter-: A simple alphabet indexed scrollbar , AtoZscrollflutter - Alphabet indexable scrollbar. A simple alphabet indexed scrollbar for flutter "EZ TO USE". demo.gif. (The search exemple include regex  A ListView is basically a CustomScrollView with a single SliverList in its CustomScrollView.slivers property. If ListView is no longer sufficient, for example because the scroll view is to have both a list and a grid, or because the list is to be combined with a SliverAppBar , etc, it is straight-forward to port code from using ListView to using CustomScrollView directly.