📜
Flutterでページングする
リストで項目を表示して、下まで来たら追加読み込みをする。
iOSなら、UITableViewを使って、UIScrollViewDelegateでスクロール位置を見たり、表示外のセルがいくつあるかを見て次のページの要素を取得したりします。
これ、Flutterだとどうやるんだろう?
項目の表示はListViewでやるとして、次の要素を取得するかどうかの判断ってどうやるのが良いんだろう?
というわけで、調べてみたら、このページが見つかりました。
3通りのやり方が書いてあります。
builderのindexを見てリクエストを発行する方法(Last Index パターン)
これは、iOSでいうところの
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
このデリゲートで、制御する感じかな。
ScrollControllerでスクロール量を判定する方法 (Scroll Positon パターン)
これは、
func scrollViewDidScroll(_ scrollView: UIScrollView)
これでスクロール位置をみて制御する感じ。
リスト下端のRenderObjectが画面内に入ったことを検知する方法 (In Sightパターン)
これは、iOSだと何に当たるんだろう?
UITableViewのFooterにIndicator表示するみたいな感じ?
1か2を使うのが良さそうですね。
Discussion