Как сфокусировать текстовое поле при инициализации initstate - PullRequest
1 голос
/ 15 января 2020

Я хочу сфокусировать свое текстовое поле при инициализации initstate. например. когда я открываю любую страницу и затем, если есть какое-либо текстовое поле, тогда текстовое поле должно быть автоматически сфокусировано.

TextFormField(

                          focusNode: focusNode,
                          style: TextStyle(
                            color: Colors.white,
                            fontSize: orientation == Orientation.portrait
                                ? MediaQuery.of(context).size.width * 0.025
                                : MediaQuery.of(context).size.width * 0.015,
                          ),
                          validator: (val) => Validators.validateRequired(
                              val, " Product Baarcode"),
                          controller: _addproduct,
                          // focusNode: _addproductFocusNode,
                          decoration: InputDecoration(
                            errorStyle: TextStyle(color: Colors.yellow),
                            enabledBorder: UnderlineInputBorder(
                              borderSide: BorderSide(color: Colors.white),
                            ),
                            fillColor: Colors.white,
                            focusedBorder: UnderlineInputBorder(
                              borderSide: BorderSide(color: Colors.white),
                            ),
                            hintStyle: TextStyle(color: Colors.white),
                            labelStyle: TextStyle(color: Colors.white),
                            filled: false,
                            prefixIcon: Icon(
                              FontAwesomeIcons.barcode,
                              color: Colors.white,
                            ),
                            labelText: "Enter Product Barcode",
                            hintText: "Enter Product Barcode",
                          ),
                          onFieldSubmitted: (val) {
                            _addProduct();
                          },
                        ),

Ответы [ 2 ]

1 голос
/ 15 января 2020

Вы можете использовать параметр autofocus: TextFormField и установить его в значение true. Это, однако, заставит клавиатуру появиться сразу же.

1 голос
/ 15 января 2020

Если вы хотите, чтобы при открытии страницы фокусировался TextField, вы можете использовать свойство autofocus:

TextField(
  autofocus: true,
);

Если вы хотите, чтобы он был сфокусирован позднее, тогда вы можете использовать класс FocusNode. Вы можете проверить пример здесь:

https://flutter.dev/docs/cookbook/forms/focus#focus -a-текстовое поле-когда-кнопка-нажата

...