В Flutter виджеты делятся на две основные категории:
- StatelessWidget: Виджеты, состояние которых не меняется после первоначальной сборки. Они описывают часть UI, которая не зависит от каких-либо данных в рантайме.
- StatefulWidget: Виджеты с изменяемым состоянием. Они имеют связанный объект
State, который содержит изменяемые данные и обеспечивает механизм для перестройки виджета при изменении состояния.
Кроме того, виджеты можно классифицировать по их назначению:
- Layout виджеты: Управляют расположением других виджетов на экране (например,
Row, Column, Stack).
- Material Components / Cupertino виджеты: Предоставляют готовые UI элементы, соответствующие гайдлайнам Material Design (Android) или Cupertino (iOS) (например,
AppBar, Button, TextField).
- Input виджеты: Позволяют пользователю взаимодействовать с приложением (например,
TextField, Checkbox, Slider).
- Interactive виджеты: Реагируют на пользовательские жесты (например,
GestureDetector, InkWell).
- Painting & Effects виджеты: Применяют графические эффекты (например,
Opacity, ClipRRect).
- Scrolling виджеты: Обеспечивают прокрутку контента (например,
ListView, GridView).
По способу создания виджеты могут быть:
- Примитивные: Базовые строительные блоки (например,
Container, Text, Icon).
- Композитные: Составлены из других виджетов.
dart
dart