Виджет-контроллеры в Flutter используются для управления состоянием или поведением конкретного виджета извне, а также для взаимодействия с ним.
Основные цели использования:
Примеры популярных контроллеров:
TextEditingController: Управление текстовыми полями (TextField, TextFormField). Позволяет получать и устанавливать текст, управлять выделением и позицией курсора.
dart
ScrollController: Управление прокручиваемыми виджетами (ListView, GridView, SingleChildScrollView). Позволяет программно прокручивать, получать текущую позицию прокрутки и слушать события прокрутки.
dart
PageController: Управление виджетами-страницами (PageView). Позволяет переключаться между страницами, получать текущую страницу и слушать события изменения страницы.
dart
Контроллеры обычно передаются в соответствующий виджет через его конструктор. Управление жизненным циклом контроллера (создание и удаление) должно происходить в виджете, который его использует, часто в методе initState для создания и dispose для удаления.
dart
Использование контроллеров позволяет явно отделять логику управления виджетом от его представления.