こんにちは 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数を増やしていってもそこまでメモリー上昇はしませんでしたが、要素数が大量にある場合は画像を設定するときなど、面倒なので、固定の要素数を使い回す形の設計にしようと思います。
貴重なお時間お読み下さいまして、誠にありがとうございます。
コメントを残す