У меня есть текстовое поле и кнопку, и я хочу < /p>
что текстовое поле изначально фокусируется, а клавиатура показывает, что нажатие на кнопку «Фокус», и нажатие кнопки «Фокуса», и нажатие на кнопку «Фокуса». экран. < /li>
< /ul>
Прямо сейчас у меня есть это < /p>
Код: Выделить всё
class _MyWidgetState extends State {
final FocusNode focusNode = FocusNode();
@override
Widget build(BuildContext context) {
return Column(
children: [
TextField(
focusNode: focusNode,
autofocus: true,
decoration: InputDecoration(
hintText: "name2",
),
),
OutlinedButton(onPressed: (){
focusNode.requestFocus();
}, child: Text("Done"))
]
);
}
}
< /code>
Но клавиатура не появляется изначально (хотя текстовое поле выглядит сфокусированным). Он появляется после нажатия один раз в текстовом поле, но он снова исчезает после нажатия на кнопку «Готово» (что, вероятно, имеет смысл, так как я думаю, что кнопка «Готово» здесь получает фокус) < /p>
У меня в основном два вопроса: < /p>
Почему клавиш не появляется изначально? Я могу «решить» эту часть, добавив, в инициатор, что -то вроде ниже, но я не уверен, что это самый чистый способ сделать это. < /Li>
< /ul>
focusNode.addListener(() {
if (!focusNode.hasFocus) {
FocusScope.of(context).requestFocus(focusNode);
}
});
Подробнее здесь: https://stackoverflow.com/questions/723 ... g-a-button