一個可自訂的分頁套件,適用於 Flutter,可實現從 API 以逐頁方式高效載入和顯示資料。它支援下拉刷新與無限捲動互動,非常適合處理大型資料集的清單型應用。此套件設計靈活,允許開發者自訂 UI、載入指示器與錯誤狀態。它與非同步資料取得無縫整合,並能處理空結果與網路故障等邊界情況。
適用情境
在列表中加載大型數據集
實現無限滾動
從 REST API 取得資料
顯示分頁搜尋結果
建構新聞或社群媒體訊息
主要特色
可自定義的 UI 組件
下拉刷新支援
無限捲動整合
錯誤和空狀態處理
可設定的載入指示器
適合對象
包含大量數據列表的應用程式
基於API的內容顯示
需要延遲加載的使用者介面
尋求可重用分頁邏輯的開發人員
需要響應式分頁使用者體驗的專案
使用建議
需要手動處理 API 請求
有限的內建快取
未針對極高頻率的更新進行優化
依賴外部狀態管理
複雜佈局可能需要額外的樣式
原始 README
以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。
Flutter Paginator
A customizable pagination package for Flutter. This package can be used
to fetch and display data from an API page by page.
Screenshots
Installing
dependencies:flutter_paginator:^0.0.6
Description
Paginator extends StatefulWidget has 3 constructors namely Paginator.listView, Paginator.gridView and Paginator.pageView. Paginator.listView, Paginator.gridView and Paginator.pageView are descendants of ListView, GridView and PageView. Paginator.listView, Paginator.gridView and Paginator.pageView got all the features of their ancestors and they are need to provide additional functions that are essential in doing their task.
PageLoadFuture
Loads the page asynchronously when the page number is given.
This should return an instance of a Future.
Called when the next page is needed to be loaded.
PageItemsGetter
This function should return list of page item data when page data is given.
This is called after successful completion of PageLoadFuture.
The page items returned by this method is added to the list of all the
page items.
ListItemBuilder
Builds list item when item data and item index are given.
This should return an instance of a Widget.
LoadingWidgetBuilder
Builds loading widget.
This should return an instance of a Widget.
ErrorWidgetBuilder
Builds error widget when page data and error callback are given.
This should return an instance of a Widget.
EmptyListWidgetBuilder
Builds empty list widget.
This is displayed when the total number of list items is zero.
This should return an instance of a Widget.
TotalItemsGetter
This should return total number of list items when page data is given.
PageErrorChecker
This should return true if page has error else false, when page data is given.