🧩ListView()
Что такое ListView
ListViewListView — это виджет в Flutter, который используется для отображения списка элементов, таких как текст, изображения или кнопки. Представьте, что вы читаете книгу или прокручиваете ленту в социальных сетях, где контент появляется в вертикальном или горизонтальном направлении. ListView позволяет вам легко создавать такие списки в вашем приложении.
Пример использования
Вот простой пример того, как использовать ListView в приложении:

Как работает код
ListView — это основной виджет, который создаёт вертикальный или горизонтальный список.
children — это список виджетов, которые будут отображены в
ListView. В нашем примере мы используемListTileдля каждого элемента.Когда приложение запускается, Flutter отображает список элементов, которые можно прокручивать, если они не помещаются на экране.
Зачем это нужно
ListView полезен в следующих случаях:
Динамические данные: Если у вас есть данные, которые могут меняться (например, список пользователей, новостей или продуктов),
ListViewпозволяет вам легко отображать эти данные.Прокрутка: Когда элементов много, и они не помещаются на экране,
ListViewавтоматически добавляет возможность прокрутки.Гибкость: Вы можете настроить
ListViewдля различных сценариев, таких как вертикальная или горизонтальная прокрутка, фиксированная высота элементов и многое другое.
Все настройки ListView
ListViewKey? key
Описание: Уникальный ключ для виджета, который помогает Flutter отслеживать изменения в виджетах. Полезен при работе со сложными структурами.
Пример:
Axis scrollDirection = Axis.vertical
Описание: Указывает направление прокрутки. По умолчанию вертикально, но можно задать горизонтально.
Пример:
bool reverse = false
Описание: Если true, список будет прокручиваться в обратном направлении, начиная с конца.
Пример:
ScrollController? controller
Описание: Позволяет управлять прокруткой
ListViewс помощью контроллера.Пример:
bool? primary
Описание: Указывает, является ли
ListViewосновным элементом прокрутки. Обычно используется в рамках других прокручиваемых виджетов.Пример:
ScrollPhysics? physics
Описание: Позволяет настроить поведение прокрутки (например, эффект пружины).
Пример:
bool shrinkWrap = false
Описание: Если true,
ListViewбудет занимать только столько места, сколько необходимо для отображения элементов, а не расширяться на весь экран.Пример:
EdgeInsetsGeometry? padding
Описание: Указывает отступы вокруг содержимого списка.
Пример:
double? itemExtent
Описание: Указывает фиксированную высоту (или ширину) элементов списка. Полезно для оптимизации производительности.
Пример:
double? Function(int, SliverLayoutDimensions)? itemExtentBuilder
Описание: Позволяет динамически вычислять размер элементов в зависимости от их индекса.
Пример:
Widget? prototypeItem
Описание: Позволяет задать "прототип" элемента списка, который будет использован для определения его размеров.
Пример:
bool addAutomaticKeepAlives = true
Описание: Если true, элементы списка будут сохраняться в памяти, чтобы не терять состояние при прокрутке.
Пример:
bool addRepaintBoundaries = true
Описание: Если true, виджеты будут перерисовываться только тогда, когда это необходимо, что помогает улучшить производительность.
Пример:
bool addSemanticIndexes = true
Описание: Если true, автоматически добавляет семантические индексы для улучшения доступности.
Пример:
double? cacheExtent
Описание: Указывает, сколько места в пикселях следует кэшировать за пределами видимой области списка.
Пример:
List<Widget> children = const <Widget>[]
Описание: Список виджетов, которые будут отображаться в
ListView.Пример:
int? semanticChildCount
Описание: Позволяет указать количество семантических детей для улучшения доступности.
Пример:
DragStartBehavior dragStartBehavior = DragStartBehavior.start
Описание: Определяет поведение начала перетаскивания (в начале или в середине элемента).
Пример:
ScrollViewKeyboardDismissBehavior keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual
Описание: Определяет поведение при закрытии клавиатуры (например, вручную или автоматически).
Пример:
String? restorationId
Описание: Идентификатор для восстановления состояния при изменениях в приложении.
Пример:
Clip clipBehavior = Clip.hardEdge
Описание: Определяет, как обрезать содержимое, которое выходит за пределы виджета.
Пример:
HitTestBehavior hitTestBehavior = HitTestBehavior.opaque
Описание: Определяет, как обрабатывать события касания. Например,
opaqueпозволяет элементам реагировать на касания, даже если они прозрачные.Пример:
Итог
ListView — это мощный инструмент для создания прокручиваемых списков в Flutter. Он прост в использовании и настраивается для различных сценариев. С помощью настроек ListView вы можете точно контролировать поведение, внешний вид и производительность вашего списка, обеспечивая при этом хороший пользовательский опыт
Last updated