infinite_scroll.dart

こんにちは EveryDaySoft代表の永田です。

今回は自作カルーセル機能を作るために、無限スクロール 機能を作成しました。

https://gist.github.com/daisukenagata/627906e79ec5b16c2b0286a4607f216b

挙動 

上記リンク先では2000回ほどスクロールをしてメモリー上昇率を試しましたが、顕著に上昇はせず、一定の値に保ってました。

リンク先のコードでは30個の値を設定し、スクロール位置で、

値を入れ直し、スクロール位置も変更しています。

このような形です。

Future<void> _infinityAnimation(int d, int d2, double d3) async {
  for (var i = 0; i < _itemCount; i++) {
    _itemList[i] = i + d2 - d;
  }
  offset = d3;
  _c.jumpTo(d3);
}

offsetはFutureBuilderでの値の有無に使用しています。offsetをnullにしている場合は、空のContainerをセットしてます。ここでメモリーの解放とか一気にリセット出来るかもと思いましたが、そこまではメモリー解放は行われないようでした。単純にListViewのitemCount数を増やしていってもそこまでメモリー上昇はしませんでしたが、要素数が大量にある場合は画像を設定するときなど、面倒なので、固定の要素数を使い回す形の設計にしようと思います

貴重なお時間お読み下さいまして、誠にありがとうございます。