ListViewの競合?リストが振動するようなバグ

ristViewの読み込みの影響かスクロールの最後で振動するような挙動になってしまいます。以下の画像のような状態です。Gifなので伝わりにくいですが、細かく振動するような、引っかかるような挙動です。
14d381f8b3584589f17520aeeec3ad78 (1)

現在のウィジェットの構成は以下の通りです。

クロールコンポーネント(例: ScrollViewやListView)で、上下スクロールや横スライドのジェスチャーが競合についても考慮したのですが、なかなか解決に至りません。

参考URL

IOSなどででる、多分

クエリの重複によるUIリビルド再構築の失敗だと思います

FlutterFlowやFlutterのネイティブ挙動では、複数のFirestoreクエリが連続して実行されると、データの更新が頻繁に発生し、スクロール中のリストが再構築されてしまいます。
特に 「2つの異なるコレクションを連続してクエリ」 している場合に起こりやすい現象です。

事例の例

【参考記事】 iOS ListView Jumping

この問題については、

  • スクロール時のジャンプをなくす
  • リストがスムーズに最後までスクロールできる。
  • Firestoreクエリの重複を避ける

となります。具体的には、

対策①:クエリの重複をなくす

データの取得回数を最適化し、スクロール時の不要なリビルドを防ぐ。

解決策のポイント

  1. Firestoreのクエリ統合
  • 可能であれば、Firestoreの複数のクエリを一つにまとめ、
    必要なデータ(例:「誕生日」情報など)を最初のコレクションに含める。

対策②:高さ制限の解除(UIレイアウトの調整)

高さ制限を解除することで、スクロール時のジャンプを防ぎ、リストをスムーズに表示させる。

以下は、添付されている親ウィジェットが途中で切れているので、この通りできるか?とか、これが解決するかは、わからないですが、こういう感じで解決するという参考までに。要は、極力ジャンプさせないような構成にするということです。(もうやっているのかもしれませんが、、)

【解決策のポイント】

  1. Expanded ウィジェットを使用する(高さ制約の解除)
  • ListViewExpanded でラップすることで、画面の残りのスペースにリストを適応させ、スクロールをスムーズに動作させる。
  1. 親コンテナの高さを infinity に設定
  • Container の高さを無限に設定することで、
    リストのスクロールスペースを最大限に確保し、ジャンプを防ぐ。

ご指摘いただいたとおり、クエリの重複が原因のようです。他のウィジェットをすべて削除し、ListViewのみでページを作成してみましたが、やはりスクロール時にジャンピングが発生しました。
正しい方法かは不明ですが、ListViewを含めクエリを読み込んでいるものを全てsingle time queryにすることで問題が解消できました。
ご回答いただき大変参考になりました。ありがとうございます。

おおー、良かったです!!
いい感じで進んでますね。

引き続き頑張っていきましょう^^