Мы подошли к заключительной части нашего цикла о сливер-виджетах во Flutter. За прошедшие статьи мы разобрали множество различных типов сливеров, от списков и сеток до гибких решений для управления размером и поведением элементов. В этой финальной статье мы познакомимся со сливер-виджетами, которые являются аналогами обычных (box-based) виджетов, выполняя схожие функции, но для работы в прокручиваемых структурах. Эти элементы расширяют возможности управления видимостью, анимациями и декорациями, предоставляя дополнительную гибкость при создании сложных интерфейсов.
Предыдущие материалы по теме:

SliverOpacity — изменяет непрозрачность своего дочернего sliver элемента.
SliverOpacity( opacity: 0.8, sliver: SomeSliver(), )
SliverAnimatedOpacity — анимированная версия SliverOpacity, изменяет непрозрачность дочернего элемента за заданный промежуток времени.
SliverAnimatedOpacity( opacity: _visible ? 1.0 : 0.0, duration: Duration(seconds: 1), sliver: SomeSliver(), )
SliverFadeTransition — также анимирует непрозрачность сливера, но уже принимает объект Animation.
SliverFadeTransition( opacity: _animation, sliver: SomeSliver(), )
SliverIgnorePointer — делает дочерний сливер невидимым во время hit-testing-а, то есть игнорирует нажатия.
SliverIgnorePointer( sliver: SomeSliver(), )
SliverOffstage — размещает sliver так, как если бы он был в дереве, но ничего не отрисовывал, нажатие невозможно и не занимает никакого места в родительском элементе.
SliverOffstage( sliver: SomeSliver(), )
SliverVisibility — показывает или скрывает дочерний сливер.
SliverVisibility( visible: true, sliver: SomeSliver(), )
У сливера есть дополнительные необязательные поля, которые могут быть полезны:
-
replacementSliver: сливер, который отображается, когда visible: false
-
maintainState: сохранять состояние скрытого сливера
-
maintainAnimation: продолжать анимацию скрытого сливера
-
maintainSize: сохранять размер скрытого сливера
-
maintainSemantics: сохранять семантику скрытого сливера
-
maintainInteractivity: сохранять интерактивность скрытого сливера

DecoratedSliver — добавляет декорации дочернему сливеру, использует для этого класс BoxDecoration, который также используется в DecoratedBox.
DecoratedSliver( decoration: BoxDecoration( border: Border.all(color: Colors.black, width: 5), borderRadius: BorderRadius.circular(32), gradient: LinearGradient( colors: [Colors.orange, Colors.purple], begin: Alignment.topLeft, end: Alignment.bottomRight, ), ), sliver: SomeSliver(), )
Последний добавленный сливер, SliverFloatingHeader, появился в совсем недавней версии Flutter — 3.27.0, поэтому есть немалая вероятность, что мы еще увидим новые сливер-веджеты во фреймворке. Но пока что на этом завершается наш обзор. Мы рассмотрели все существующие сливер-виджеты, и теперь, обладая представлением о их возможностях, вы можете выбирать оптимальные решения для своих проектов. С помощью сливеров вы получите большую гибкость в управлении прокруткой и компоновкой, делая ваши интерфейсы более интерактивными и отзывчивыми.
ссылка на оригинал статьи https://habr.com/ru/articles/884580/
Добавить комментарий