# TextField()

#### 1. **controller**

Контролирует содержимое текстового поля и позволяет получать или изменять текст программно.

```dart
// Some code
TextEditingController _controller = TextEditingController();

TextField(
  controller: _controller,
)

```

#### 2. **focusNode**

Управляет фокусом текстового поля. С его помощью можно программно устанавливать или снимать фокус с поля

```dart
// Some code
FocusNode _focusNode = FocusNode();

TextField(
  focusNode: _focusNode,
)

```

#### 3. **keyboardType**

Определяет тип клавиатуры, которая появляется при вводе. Например, для ввода чисел можно выбрать числовую клавиатуру.

```dart
// Some code
TextField(
  keyboardType: TextInputType.number,
)

```

#### 4. **textInputAction**

Управляет действием, которое будет выполняться при нажатии на кнопку ввода (например, "Готово", "Поиск").

```dart
// Some code
TextField(
  textInputAction: TextInputAction.search,
)

```

#### 5. **textCapitalization**

Устанавливает правила капитализации текста (например, все буквы, только первая буква и т.д.).

```dart
// Some code
TextField(
  textCapitalization: TextCapitalization.words,
)

```

#### 6. **style**

Устанавливает стили текста, такие как цвет, размер шрифта, жирность и т.д.

```dart
// Some code
TextField(
  style: TextStyle(color: Colors.blue, fontSize: 18),
)

```

#### 7. **textAlign**

Управляет выравниванием текста внутри текстового поля (слева, по центру, справа).

```dart
// Some code
TextField(
  textAlign: TextAlign.center,
)

```

#### 8. **textDirection**

Устанавливает направление текста, например, для языков с правым направлением письма (арабский, иврит).

```dart
// Some code
TextField(
  textDirection: TextDirection.rtl,
)

```

#### 9. **readOnly**

Делает поле только для чтения, не позволяя пользователю вводить данные.

```dart
// Some code
TextField(
  readOnly: true,
)

```

#### 10. **obscureText**

Делает текст скрытым, как в паролях.

```dart
// Some code
TextField(
  obscureText: true,
)

```

#### 11. **maxLength**

Ограничивает количество символов, которые можно ввести

```dart
// Some code
TextField(
  maxLength: 10,
)

```

#### 12. **maxLines**

Устанавливает максимальное количество строк, которые можно вводить.

```dart
// Some code
TextField(
  maxLines: 3,
)

```

#### 13. **minLines**

Устанавливает минимальное количество строк, отображаемых в текстовом поле.

```dart
// Some code
TextField(
  minLines: 2,
)

```

#### 14. **expands**

Растягивает текстовое поле, чтобы оно занимало все доступное пространство, задавая соответствие `minLines` и `maxLines`.

```dart
// Some code
TextField(
  expands: true,
  maxLines: null,
  minLines: null,
)

```

#### 15. **onChanged**

Вызывается каждый раз, когда пользователь изменяет текст.

```dart
// Some code
TextField(
  onChanged: (text) {
    print('Text changed: $text');
  },
)

```

#### 16. **onSubmitted**

Вызывается при нажатии на кнопку ввода на клавиатуре.

```dart
// Some code
TextField(
  onSubmitted: (text) {
    print('Text submitted: $text');
  },
)

```

#### 17. **enabled**

Определяет, включено ли текстовое поле для взаимодействия с пользователем.

```dart
// Some code
TextField(
  enabled: false,
)

```

#### 18. **cursorColor**

Устанавливает цвет курсора.

```dart
// Some code
TextField(
  cursorColor: Colors.red,
)

```

#### 19. **cursorWidth**

Определяет ширину курсора.

```dart
// Some code
TextField(
  cursorWidth: 3.0,
)

```

#### 20. **cursorRadius**

Делает края курсора закругленными.

```dart
// Some code
TextField(
  cursorRadius: Radius.circular(5.0),
)

```

#### 21. **scrollPadding**

Задает отступы для прокрутки при появлении клавиатуры.

```dart
// Some code
TextField(
  scrollPadding: EdgeInsets.all(20.0),
)

```

#### 22. **keyboardAppearance**

Задает тему клавиатуры (светлая или темная).

```dart
// Some code
TextField(
  keyboardAppearance: Brightness.dark,
)

```

#### 23. **autofocus**

Автоматически устанавливает фокус на текстовом поле при открытии экрана.

```dart
// Some code
TextField(
  autofocus: true,
)

```

#### 24. **inputFormatters**

Определяет форматирование ввода, например, можно ограничить ввод только цифрами.

```dart
// Some code
import 'package:flutter/services.dart';

TextField(
  inputFormatters: [FilteringTextInputFormatter.digitsOnly],
)

```

#### 25. **enableSuggestions**

Включает или отключает автоподсказки (например, для клавиатур с автозавершением текста).

```dart
// Some code
TextField(
  enableSuggestions: false,
)

```

#### 26. **autocorrect**

Включает или отключает автокоррекцию

```dart
// Some code
TextField(
  autocorrect: true,
)

```

#### 27. **enableInteractiveSelection**

Включает или отключает возможность выделять текст.

```dart
// Some code
TextField(
  enableInteractiveSelection: false,
)

```

#### 28. **selectionControls**

Настраивает, как будет происходить выделение текста, например, копирование и вставка.

```dart
// Some code
TextField(
  selectionControls: materialTextSelectionControls,
)

```

## decoration: InputDecoration()

<div align="left"><figure><img src="https://i.postimg.cc/zvfn55Cg/1.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    labelText: 'Enter your name',
    border: OutlineInputBorder(),
  ),
)

```

#### 1. **labelText**

Текст метки, который отображается над текстовым полем, когда оно активно или заполнено.

<div align="left"><figure><img src="https://i.postimg.cc/dV0fsHcM/2-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    labelText: 'Введите ваше имя',
  ),
)

```

#### 2. **labelStyle**

Задает стиль для `labelText`, например, цвет, размер шрифта и т.д.

<div align="left"><figure><img src="https://i.postimg.cc/GmVnZw8g/3-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    labelText: 'Введите ваше имя',
    labelStyle: TextStyle(color: Colors.blue),
  ),
)

```

#### 3. **helperText**

Текст-помощник, который отображается под текстовым полем.

<div align="left"><figure><img src="https://i.postimg.cc/WztX80fC/4.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    helperText: 'Поле должно содержать ваше полное имя',
  ),
)

```

#### 4. **helperStyle**

Стиль для `helperText`.

<div align="left"><figure><img src="https://i.postimg.cc/kg9914qw/5.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    helperText: 'Поле должно содержать ваше полное имя',
    helperStyle: TextStyle(color: Colors.green, fontSize: 20, fontWeight: FontWeight.bold),
  ),
)

```

#### 5. **hintText**

Подсказка, отображаемая в текстовом поле, когда оно пустое.

<div align="left"><figure><img src="https://i.postimg.cc/YCkXntxz/6-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    hintText: 'Введите ваше имя',
  ),
)

```

#### 6. **hintStyle**

Стиль для `hintText`

<div align="left"><figure><img src="https://i.postimg.cc/VkLhsYbL/7-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    hintText: 'Введите ваше имя',
   hintStyle: TextStyle(color: Colors.red, fontSize: 20, fontWeight: FontWeight.bold),
  ),
)

```

#### 7. **hintMaxLines**

Максимальное количество строк для отображения подсказки `hintText`.

<div align="left"><figure><img src="https://i.postimg.cc/TwjBWjW6/8.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    hintText: 'Введите ваше полное имя и фамилию sdkjasalksdjaksjdlaskjdlasjdlkajsdlkasd',
    hintMaxLines: 2,
  ),
)

```

#### 8. **errorText**

Текст ошибки, который отображается под текстовым полем, если данные введены неверно.

<div align="left"><figure><img src="https://i.postimg.cc/qRzdhDdC/9.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    errorText: 'Неверный ввод',
  ),
)

```

#### 9. **errorStyle**

Стиль для текста ошибки.

<div align="left"><figure><img src="https://i.postimg.cc/K8kLfxr9/10.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    errorText: 'Неверный ввод',
    errorStyle: TextStyle(color: Colors.red, fontSize: 12),
  ),
)

```

#### 10. **errorMaxLines**

Максимальное количество строк для отображения текста ошибки.

```dart
// Some code
TextField(
  decoration: InputDecoration(
    errorText: 'Неверный ввод. Попробуйте снова.',
    errorMaxLines: 2,
  ),
)

```

#### 11. **floatingLabelBehavior**

Управляет тем, как метка (`labelText`) "плавает" при взаимодействии с полем. Может быть всегда видимой, появляться только при вводе текста или не показываться.

<div align="left"><figure><img src="https://i.postimg.cc/hPqj5YQ0/11-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    labelText: 'Введите ваше имя',
    floatingLabelBehavior: FloatingLabelBehavior.always,
  ),
)

```

#### 12. **icon**

Иконка, которая отображается перед текстовым полем.

<div align="left"><figure><img src="https://i.postimg.cc/P5p3DGLH/13.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    icon: Icon(Icons.person),
  ),
)

```

#### 13. **prefixIcon**

Иконка, которая отображается внутри текстового поля перед текстом.

<div align="left"><figure><img src="https://i.postimg.cc/D0ChSVSs/14.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    prefixIcon: Icon(Icons.email),
  ),
)

```

#### 14. **suffixIcon**

Иконка, которая отображается внутри текстового поля после текста.

<div align="left"><figure><img src="https://i.postimg.cc/MKMZnTYp/15.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    suffixIcon: Icon(Icons.visibility),
  ),
)

```

#### 15. **prefixText**

Текст, который отображается перед введённым текстом (например, для валют или кодов стран).

<div align="left"><figure><img src="https://i.postimg.cc/x1wFvL4q/16-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    prefixText: '+996 ',
  ),
)

```

#### 16. **prefixStyle**

Стиль для `prefixText`.

<div align="left"><figure><img src="https://i.postimg.cc/jqh5BX60/17-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    prefixText: '+996 ',
    prefixStyle: TextStyle(color: Colors.blue, fontWeight: FontWeight.bold, fontSize: 20),,
  ),
)

```

#### 17. **suffixText**

Текст, который отображается после введённого текста.

<div align="left"><figure><img src="https://i.postimg.cc/wMYwJzfP/18-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    suffixText: 'USD',
  ),
)

```

#### 18. **suffixStyle**

Стиль для `suffixText`.

<div align="left"><figure><img src="https://i.postimg.cc/9QBzHBHq/19-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    suffixText: 'USD',
    suffixStyle: TextStyle(color: Colors.green, fontSize: 20, fontWeight: FontWeight.bold),
  ),
)

```

#### 19. **counterText**

Текст, который отображается под текстовым полем, например, счетчик введённых символов.

<div align="left"><figure><img src="https://i.postimg.cc/hvbGt3nR/20.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    counterText: '0/10 символов',
  ),
)

```

#### 20. **counterStyle**

Стиль для `counterText`

<div align="left"><figure><img src="https://i.postimg.cc/rsYPxqM1/21.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    counterText: '0/10 символов',
    counterStyle: TextStyle(color: Colors.red, fontSize: 20, fontWeight: FontWeight.bold),
  ),
)

```

#### 21. **filled**

Если `true`, текстовое поле будет залито цветом, заданным в `fillColor`.

<div align="left"><figure><img src="https://i.postimg.cc/5yxXLMn2/22.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    filled: true,
    fillColor: Colors.green,
  ),
)

```

#### 22. **fillColor**

Цвет фона текстового поля, если `filled: true`.

<div align="left"><figure><img src="https://i.postimg.cc/5yxXLMn2/22.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    filled: true,
    fillColor: Colors.green,
  ),
)

```

#### 23. **border**

Управляет границами текстового поля.

<div align="left"><figure><img src="https://i.postimg.cc/rmhD1PbG/23.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    border: OutlineInputBorder(),
  ),
)

```

#### 24. **enabledBorder**

Граница текстового поля, когда оно активно, но не в фокусе.

<div align="left"><figure><img src="https://i.postimg.cc/bvK76KV0/24-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    enabledBorder: OutlineInputBorder(
      borderSide: BorderSide(color: Colors.blue),
    ),
  ),
)

```

#### 25. **focusedBorder**

Граница текстового поля, когда оно находится в фокусе.

<div align="left"><figure><img src="https://i.postimg.cc/QNkMTbVY/25-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    focusedBorder: OutlineInputBorder(
      borderSide: BorderSide(color: Colors.green, width: 2.0),
    ),
  ),
)

```

#### 26. **errorBorder**

Граница текстового поля, когда данные введены с ошибкой.

<div align="left"><figure><img src="https://i.postimg.cc/nL24WTgr/26.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    errorText: 'Ошибка',
    errorBorder: OutlineInputBorder(
      borderSide: BorderSide(color: Colors.red, width: 2.0),
    ),
  ),
)

```

#### 27. **focusedErrorBorder**

Граница текстового поля, когда оно в фокусе и с ошибкой.

<div align="left"><figure><img src="https://i.postimg.cc/6p6zXY4k/27-ezgif-com-video-to-gif-converter.gif" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    errorText: 'Ошибка',
    focusedErrorBorder: OutlineInputBorder(
      borderSide: BorderSide(color: Colors.red, width: 2.0),
    ),
  ),
)

```

#### 28. **contentPadding**

Внутренние отступы содержимого внутри текстового поля.

<div align="left"><figure><img src="https://i.postimg.cc/ht9N3znv/28.png" alt=""><figcaption></figcaption></figure></div>

```dart
// Some code
TextField(
  decoration: InputDecoration(
    contentPadding: EdgeInsets.all(16.0),
  ),
)

```
