2つのtextFormFieldウィジェットがあります。ユーザーが最初のtextFieldを競ったら、次のtextFieldに焦点を合わせたいと思います。 Flutterでこれを行う方法はありますか?現在、完了ボタンはキーボードを閉じるだけです。私はfocusNodeクラスがこれに対する答えかもしれないと推測していましたが、それがどのように機能するのかは確かではありませんが、誰もfocusNodeクラスの良い例を持っていますか?前もって感謝します。
はい、 FocusNode と TextFormField からのonFieldSubmitted
がおそらく道です。
FocusScope.of(context).requestFocus(focusNode);
以下に役立つ例を示します。
_ FocusNode textSecondFocusNode = new FocusNode();
TextFormField textFirst = new TextFormField(
onFieldSubmitted: (String value) {
FocusScope.of(context).requestFocus(textSecondFocusNode);
},
);
TextFormField textSecond = new TextFormField(
focusNode: textSecondFocusNode,
);
// render textFirst and textSecond where you want
_
また、onFieldSubmittedではなくボタンからFocusScope.of()
をトリガーすることもできますが、上記の例で、ユースケースに適したソリューションを構築するのに十分なコンテキストが得られることを願っています。
Androidのような同様の方法があります。
追加
textInputAction
パラメータをTextFormFieldウィジェットに追加し、プロパティを次のように追加します。
TextInputAction.next