Не работает Infinite Scroll

ListView с включённым Infinite Scroll загружает все элементы сразу вместо порций. Причина всегда в раскладке: виджет не знает, какой у него видимый размер, и грузит всё.

инфо
Что нужно заранее
  • В ListView включён Infinite Scroll.
  • Виджет стоит там, где ограничение по высоте вообще возможно.
  1. Задайте высоту

    Без ограничения по высоте ListView не может вычислить видимую область — и загружает все записи.

  2. Пусть список прокручивается сам

    • Отключите прокрутку у родительской Column или другого прокручиваемого контейнера.
    • Включите опцию Primary и оберните ListView в Expanded.

    Так список сам управляет прокруткой и понимает, сколько элементов подгружать за раз.

    ListView внутри Expanded с включённой опцией Primary

  3. Вложенный список — в контейнер с высотой

    Если ListView стоит внутри прокручиваемого родителя, оберните его в Container с заданной высотой — например, 500 пикселей.

    ListView в контейнере с фиксированной высотой

  4. Не оставляйте виджет без ограничений

    внимание

    ListView прямо внутри прокручиваемого родителя без заданной высоты ломает Infinite Scroll полностью.

  5. Разведите прокрутки

    Список должен прокручиваться первым, и только когда он закончился — родитель.

совет

Постоянная высота элементов делает подгрузку предсказуемее. Проверяйте на разных размерах экрана.

перевод официальной документации FlutterFlow

обновлено

⌕ ESC