Виджет — это фундаментальный строительный блок в Flutter, описывающий часть пользовательского интерфейса. Практически все в Flutter является виджетом: кнопки, текст, отступы, раскладки, даже само приложение.
Виджеты образуют дерево виджетов (Widget tree).
Отображение виджета на экране происходит в несколько этапов:
Когда состояние виджета меняется (например, при вызове setState), Flutter помечает этот виджет как "dirty". В следующем кадре Flutter перестраивает только те виджеты, которые были помечены как "dirty" и их дочерние виджеты. При этом элементы (Element) и объекты рендеринга (RenderObject) переиспользуются, если возможно, что значительно повышает производительность.
dart
dart
Виджеты бывают двух основных типов:
| Тип Виджета | Описание | Пример |
|---|---|---|
| StatelessWidget | Виджеты без внутреннего изменяемого состояния. Зависят только от входных параметров. | Text, Icon, Padding |
| StatefulWidget | Виджеты, которые могут изменять свое состояние в течение жизни. | Checkbox, Slider, TextField |