Infinite ListView for Flutter

pub package Build Status Coverage Status License

Overview

Infinite ListView for Flutter is a highly customizable, concurrency-safe infinite scrolling list widget built with the BLoC pattern.

It simplifies the creation of paginated lists in your Flutter application by managing the complex states of fetching data (loading, loaded, errors, and exhaustion). With built-in bloc_concurrency transformers, it entirely eliminates async race conditions between pull-to-refresh gestures and scroll-to-bottom pagination requests.

Features

  • 🔄 Race-Condition Free: Safely handles concurrent fetch events using restartable and droppable transformers.
  • 📜 Two Modes: Choose between Automatic (loads seamlessly as the user scrolls) and Manual (requires tapping a "Load More" button).
  • 🎨 Deeply Customizable: Fully customize the Native RefreshIndicator, borders, shadows, margins, paddings, and loading/error states.
  • âš¡ Single Import: Everything you need (Widgets, Blocs, Events, and States) is accessible through one clean import.

Documentation

For detailed documentation, widget properties, and architecture explanations, please visit our Wiki.

Getting Started

To install and get started with bloc_infinity_list, follow our Getting Started guide in the Wiki.

Examples

Check out various Complete Examples to see how you can easily implement both Automatic and Manual lists in your Flutter projects.

Contributing

We welcome contributions! Please see our Contributing guide for more information.

License

This project is licensed under the MIT License - see the License file for details.