logo

CustomScrollView

flutter

widgets

`CustomScrollView` — это виджет, позволяющий комбинировать несколько `Sliver`-виджетов в одном прокручиваемом контейнере. Он предоставляет гибкую архитектуру построения сложных и адаптивных интерфейсов с поддержкой ленивой загрузки содержимого.

💡 Примечание:

Основная задача `CustomScrollView` — объединить `sliver`-виджеты (например, `SliverAppBar`, `SliverList`, `SliverGrid`) в одном прокручиваемом пространстве.

Основные параметры

slivers (List<Widget>)— обязательный

Список `Sliver`-виджетов, которые формируют содержимое прокрутки. Это основной обязательный параметр.

scrollDirection (Axis)

Направление прокрутки. По умолчанию `Axis.vertical`. Может быть также `Axis.horizontal`.

reverse (bool)

Если `true`, список прокручивается в обратную сторону.

controller (ScrollController)

Контроллер прокрутки, позволяющий управлять позиционированием, слушать события скролла и т.д.

primary (bool)

Если `true`, будет использоваться как основной скролл-контейнер (например, при отсутствии `controller`).

physics (ScrollPhysics)

Определяет поведение прокрутки: инерция, отскок и т.д. Например: `BouncingScrollPhysics()` или `ClampingScrollPhysics()`.

shrinkWrap (bool)

Если `true`, список займет только необходимое место по основной оси, вместо использования всего доступного пространства.

center (Key)

Указывает ключ (Key) `Sliver`, относительно которого осуществляется прокрутка. Используется, например, в комбинации с `anchor`.

anchor (double)

Определяет точку привязки скролла к `center`. Значение от `0.0` до `1.0` (где 0 — верх/лево, 1 — низ/право).

cacheExtent (double)

Определяет расстояние (в пикселях) до области видимости, на котором предварительно подгружаются виджеты.

semanticChildCount (int)

Число дочерних элементов, которое используется системой доступности.

keyboardDismissBehavior (ScrollViewKeyboardDismissBehavior)

Поведение при скрытии клавиатуры во время прокрутки. Значения: `onDrag`, `manual` и т.д.

⚠️ Важно:

`CustomScrollView` поддерживает только `Sliver`-виджеты внутри `slivers`. Для использования обычных виджетов оберните их в `SliverToBoxAdapter`.

💡 Примечание:

Для гибкой настройки визуального поведения при прокрутке (например, анимации AppBar'а, ленивые списки и т.п.) `CustomScrollView` является незаменимым инструментом.