Back to questions
Junior — Middle
133
Можешь рассказать о различных типах пользовательских интерфейсных компонентов, которые ты знаешь?
Answer from AI
sobes.tech AI
В Flutter существует множество пользовательских интерфейсных компонентов (виджетов), которые можно условно разделить на несколько типов:
- Стандартные виджеты — базовые элементы интерфейса, такие как
Text,Button,Image,Icon,Container. - Стейтфул виджеты (StatefulWidget) — виджеты, которые могут изменять своё состояние во время работы приложения.
- Статичные виджеты (StatelessWidget) — виджеты, которые не имеют внутреннего состояния и отображают только переданные данные.
- Композиционные виджеты — виджеты, которые состоят из других виджетов, например,
Column,Row,Stackдля компоновки элементов. - Интерактивные виджеты — кнопки, переключатели, чекбоксы, поля ввода (
TextField), которые реагируют на действия пользователя. - Сложные виджеты — например,
ListView,GridViewдля отображения списков и сеток с прокруткой.
Пример простого стейтфул виджета:
class CounterWidget extends StatefulWidget {
@override
_CounterWidgetState createState() => _CounterWidgetState();
}
class _CounterWidgetState extends State<CounterWidget> {
int _counter = 0;
void _increment() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Text('Счётчик: \\$_counter'),
ElevatedButton(onPressed: _increment, child: Text('Увеличить')),
],
);
}
}