Grouped list package for Flutter.

Pub CI

A flutter ListView in which list items can be grouped to sections.


  • List Items can be separated in groups.
  • For the groups an individual header can be set.
  • Almost all fields from ListView.builder available.

Getting Started

Add the package to your pubspec.yaml:

 grouped_list: ^3.2.2

In your dart file, import the library:

import 'package:grouped_list/grouped_list.dart';

Instead of using a ListView create a GroupedListView Widget:

  GroupedListView<dynamic, String>(
    elements: _elements,
    groupBy: (element) => element['group'],
    groupSeparatorBuilder: (String groupByValue) => Text(groupByValue),
    itemBuilder: (context, dynamic element) => Text(element['name']),
    order: GroupedListOrder.ASC,


NameDescriptionRequiredDefault value
elementsA list of the data you want to display in the listrequired-
groupByFunction which maps an element to its grouped valuerequired-
itemBuilder / indexedItemBuilderFunction which returns an Widget which defines the item. indexedItemBuilder provides the current index as well. If both are defined indexedItemBuilder is preferredyes, either of them-
groupSeparatorBuilderFunction which gets the groupBy-value and returns an Widget which defines the group header separatorrequired-
separatorA Widget which defines a separator between items inside a groupnono separator
orderChange to GroupedListOrder.DESC to reverse the group sortingnoGroupedListOrder.ASC

You can also use most fields from the ListView.builder constructor.

Other packages :

Check out my other package StickyGroupedList, which is based on the scrollable_positioned_list and comes with sticky headers!