Paging your widgets. Decoupling UI and data.
Note: This plugin is still under development. Pull Requests are most welcome.
First, add flutter_paging
as a dependency in your pubspec.yaml file.
-
PagingView : Base paging view.
-
PagingListView : Quick implementation of ListView supports paging.
KeyedDataSource
is core of paging. Try something else with KeyedDataSource
Note: don't forget to call dataSource.init()
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Paging ListView"),
),
body: RefreshIndicator(
onRefresh: widget.dataSource.refresh,
child: PagingListView<String>.builder(
itemBuilder: (context, index, item) {
return Card(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text("paging->$item"),
));
},
dataSource: widget.dataSource,
loadingIndicator: Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: CircularProgressIndicator(),
),
),
noMoreDataAvailableItem: Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text("no more data avaliable~"),
),
),
),
),
);
}