2017-05-29 8 views
-2

アップリストのときに、ユーザースクロール私が欲しい、そしては、リストの一番上に項目を挿入し、リストの一番下にの項目を削除します。 どうすればこのようになりますかフラッターリスト内でスクロールアップ/スローダウンするときに、リストに項目を挿入して削除するにはどうすればいいですか?

itemBuilderは常に挿入されますが削除されることはありません(またはremoveメソッドを?に挿入するため)。 または、私はsliverlist(どのように?)を使用するか、リストビューで何とかscrollcontrollerを使用しますか? どちらが最善の方法ですか?

ので:使用をリスト

  • :リストビュー/ AnimatedList/SliverList?
  • スクロールアップ/ダウンリストの処理方法は?

ポイントは:私は同じ時間に1000アイテムを追加したくないが、ディスプレイにのみ表示されます。そして、ユーザーがリストをスクロールすると、新しいアイテムを子供に追加し、隠す子供から古いアイテムを削除します。したがって、リストの子供は、表示される項目がほんのわずかです。

+0

これまでに取得したコードを入力してください。 –

+0

コードなし。ListViewやAnimatedList/SilverListのようなものを簡単に作成し、リストをスクロールして項目を挿入して削除するだけです。 – ZeroProcess

+0

あなたは*なぜ*アイテムを削除したいのか説明できますか?あなたは彼らが多すぎるリソースを消費するか、あるいは達成しようとしている何らかの珍しい効果があることを心配していますか?ユーザーがスクロールして削除したアイテムを表示しようとしたときに、何をしたいですか? –

答えて

1

ListViewのレンダリングプロセスでは、表示可能なアイテムのみがレンダリングされます。

あなたは、彼らが実際に表示されている場合にのみ、それは子供のビルドを遅延ロードのリストビューに興味があるあなたのコメントに反応し、このビデオにhttps://www.youtube.com/watch?v=F26pbGaSzfM

+0

私は前にこのビデオを見るが、これは私にとっては良くない。なぜなら、ビデオはitemBuilderを使って子供をリストアップするだけの新しい項目を追加するが削除することはないからだ。 私は、リストの子要素にすべての項目を含めることは望ましくありません。表示される項目はほとんどないので、非表示の項目をレンダリングしないと十分ではありません。 – ZeroProcess

+0

さて、ウィジェットのライフサイクルとFlutterの仕組み(https://docs.google.com/presentation/d/1cw7A4HbvM_Abv320rVgPVGiUP2msVs7tfGbkgdrTy0I/edit#slide=id.g70d668005_2_22)を調べることから始めてください。基本的には、10項目のリストだけが必要な場合は、リストを更新してリストを更新し、 'setState'を呼び出して表示を更新することができます –

+0

はい、私が知っている重要なことはわかりません* *スクロールの処理方法**。 – ZeroProcess

1

を見なければなりません。

ListView.builderをご覧になることをお勧めします。 ListViewの説明では、次のように明示的に述べられています。

ListView.builderは、必要に応じて子を構築するIndexedWidgetBuilderを取ります。このコンストラクタは、実際に表示されている子に対してのみビルダーが呼び出されるため、大きな(または無限の)数の子を含むリストビューに適しています。

これはあなたが望む動作のようですね。

関連する問題