flutter_pagewise

A library for widgets that load their content one page (or batch) at a time (also known as lazy-loading).

Installation

See the installation instructions on pub.

How to use

The library provides three widgets:

 PagewiseGridView(
   pageSize: 10,
   totalCount: 40,
   crossAxisCount: 2,
   mainAxisSpacing: 8.0,
   crossAxisSpacing: 8.0,
   childAspectRatio: 0.555,
   padding: EdgeInsets.all(15.0),
   itemBuilder: (context, entry) {
     // return a widget that displays the entry's data
   },
   pageFuture: (pageIndex) {
     // return a Future that resolves to a list containing the page's data
   },
 );
 PagewiseListView(
   pageSize: 10,
   totalCount: 40,
   padding: EdgeInsets.all(15.0),
   itemBuilder: (BuildContext context, entry) {
     // return a widget that displays the entry's data
   },
   pageFuture: (pageIndex) {
     // return a Future that resolves to a list containing the page's data
   }
 );

Check the documentation for more details.

If you don't want to use PagewiseGridView or PagewiseListView, you can implement your own pagewise widget, by extending Pagewise class and implementing the buildWidget function, which takes a page (a list of data) and returns a widget that displays this data. For example, to implement a PagewiseColumn:

@override
Widget buildPage(BuildContext context, List page) {
  return Column(
    children: page.map((entry) => this.itemBuilder(context, entry)).toList();
  );
}

Note that in the code above I'm assuming that your implementation uses an itemBuilder function to build a widget for each entry. This, of course, is not necessary.

Libraries

flutter_pagewise
A library for widgets that load their content one page (or batch) at a time (also known as lazy-loading). [...]