> For the complete documentation index, see [llms.txt](https://dlyaverku.gitbook.io/flutter-dokumentaciya/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dlyaverku.gitbook.io/flutter-dokumentaciya/praktika/obuchenie/vidzhety.md).

# Виджеты

### Значения

![](/files/AMFmnLOONiBurN7hwGNZ)

### :lock:<mark style="background-color:green;">**StatelessWidget**</mark>&#x20;

![Для статичных элементов(Иконки, Заголовки и т.д.)](/files/bhZ3JZt4WoDPXXlFmDbU)

{% hint style="info" %}
Структура виджета
{% endhint %}

```dart
class MyWidget extends StatelessWidget { 
    @override Widget build(BuildContext context) {
        // @override - переопределяет методы наследуемых классов.
        Это необходимо для того, чтобы использовать именно свою реализацию.
        
        Widget build(BuildContext context) {
  // Метод build должен нам вернуть тип Widget, а BuildContext это тип
  возвращаемого параметра context
 }
}

 //Так как все есть виджет, то:
 
    build(context) {
    // Метод принимает в качестве параметра context - это особый тип объекта, 
    который  автоматически передается в метод сборки. Он хранит в себе
    Метаинформацию о приложении.
}

extends - Наследование для Виджетов:
    1. StatelessWidget
    2. StatefulWidget
```

{% hint style="info" %}
Каждый передеанный или собранный Виджет имеет свой уровень сборки(Level)
{% endhint %}

![Дерево виджетов](/files/2LW8DOvuKLw7J3d9rerP)

### :unlock:<mark style="background-color:green;">StatefulWidget</mark>

![](/files/ODxoZ3FEloAUeJxaPCCV)

{% hint style="info" %}
Данный виджет имеет объект состояния State\<Object> в котором хранится&#x20;

информация о текущем состоянии виджета.
{% endhint %}

#### Структура виджета

```dart
class name extends StatefulWidget {
  name({Key? key}) : super(key: key);
  // Stateful - не может существовать сам по себе, ему необходим класс,
  // который будет хранить состояние этого виджета.
  @override
  State<name> createState() => _nameState();
  // Метод createState возвращает экземпляр класса State.
}

  //Класс хранящий состояние Stateful и наследующий класс состояния.
class _nameState extends State<name> {
  
  bool _loading; // Динамическая переменная хранящая состояние загрузки(условно)
  double _progressLoad; // Динамическая переменная хранящая прогресс загрузки.

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}
```

![Жизненый цикл StatefulWidget](/files/3648LVtFvkA1xp5xMYlG)

### <mark style="background-color:orange;">Жизненый цикл StateFulWidget</mark>

{% embed url="<https://www.codetd.com/ru/article/12869665>" %}

### Layout - Виджеты

#### Разделяются на две группы:&#x20;

Видимые - ввод и вывод информации.

Невидимые - Упорядочивают, ограничивают и выравнивают видимые виджеты.

![](/files/9gPG4ct9Kk0tIglESpn6)

### Виджет Expanded -&#x20;

**Распределяет свободное пространство между другими элементами.**

![](/files/bdIuEiuhuUZEjpUuIBUY)

#### ListView -&#x20;


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dlyaverku.gitbook.io/flutter-dokumentaciya/praktika/obuchenie/vidzhety.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
