Виджет Focus
Виджет Focus принимает focusNode типа FocusNode и child.
Синтаксис
Focus(
focusNode: focusNode,
child: TextField(),
)
Параметры
| Параметр | Описание |
|---|---|
focusNode |
Узел фокуса FocusNode.
|
child |
Поддерево с полем ввода. |
autofocus |
Забирает фокус при построении. |
onFocusChange |
Вызывается при смене hasFocus. |
Методы
| Метод | Описание |
|---|---|
of |
Возвращает ближайший узел фокуса. Если узла нет, вызов бросает ошибку. |
maybeOf |
Возвращает ближайший узел фокуса или пустое значение, если узла нет. |
Пример
Давайте обернём поле:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Focus(child: TextField(decoration: const InputDecoration(labelText: 'abcde'))),
),
),
),
);
}
На экране поле внутри Focus.
Пример
Давайте зададим autofocus:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Focus(autofocus: true, child: TextField(decoration: const InputDecoration(hintText: '12345'))),
),
),
),
);
}
На экране поле сразу получает фокус.
Смотрите также
-
класс
FocusNode,
который хранит фокус поля -
метод
of,
который находит форму в контексте -
виджет
FocusTraversalGroup,
который задаёт порядокTabмежду полями -
виджет
TextField,
который принимает текст с клавиатуры