Пагинация с бесконечной прокруткой в ListView
Если ListView с включённой Infinite Scroll загружает все элементы сразу вместо пагинации, проблема обычно связана с конфигурацией макета. Это руководство описывает, как правильно структурировать виджет для корректного поведения пагинации.
- Infinite Scroll включена в
ListView. - Виджет размещён внутри макета, который позволяет учитывать ограничения по высоте.
Следуйте шагам ниже, чтобы настроить ListView для пагинации:
-
Убедитесь, что ListView имеет определённую высоту
ListViewдолжен иметь ограничение по высоте, чтобы определить размер области просмотра и правильно пагинировать. Без определённой высоты он попытается загрузить все элементы. -
Позвольте ListView управлять собственной прокруткой
-
Отключите прокрутку в любом родительском
Columnили прокручиваемом контейнере. -
Включите опцию Primary и оберните
ListViewв виджетExpanded. -
Это позволяет
ListViewконтролировать поведение прокрутки и рассчитывать элементы для загрузки на страницу.
-
-
Оберните ListView в контейнер с фиксированной высотой (если вложенный)
ЕслиListViewнаходится внутри прокручиваемого родителя (например,ColumnилиListView), оберните его вContainerс определённой высотой (например,500px). Это гарантирует, что он не расширяется бесконечно.
-
Избегайте отсутствующих ограничений по высоте
Без ограниченийListViewне узнает видимый размер и загрузит все данные сразу, обходя пагинацию.warningРазмещение
ListViewнепосредственно внутри прокручиваемого родителя без определённой высоты нарушит поведение Infinite Scroll. -
Используйте структуру макета, поддерживающую изоляцию прокрутки
ПозвольтеListViewпрокручиваться независимо, прежде чем прокрутка родителя возьмёт верх. Комбинируйте это с определённой высотой и использованиемExpandedдля наилучших результатов.
Чтобы оптимизировать пагинацию, определите последовательные высоты элементов и протестируйте с различными размерами экрана.
- Пример проекта с прокруткой ListView – Просмотрите пример рабочей конфигурации.