Sobes.tech
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('Увеличить')),
      ],
    );
  }
}