[Fluth]ドキュメントの自動完了
6698 ワード
目的
会社はアクセルでサッカーの試合のデータを受信し、数千件のデータを直接データベースに保存しており、運営の空挺が大きすぎる.
Excelにデータを追加しているパートタイムにDBとして配布できるWeb管理者ページを提供するために、Fluter 2.0から追加するAutocompleteコンポーネントを使用しました.
部品の使用は問題ありませんが、Post後に自動的に完了したFieldを初期化したいのですが、コントローラをパラメータとして単独で受け入れることはありません.
したがって、制御部品の方法を見つけるために、部品内部を表示および記録する.
内容
ソースコード
コントローラをパラメータにしていなかったので慌てましたが、うまく解決できてよかったです.
会社はアクセルでサッカーの試合のデータを受信し、数千件のデータを直接データベースに保存しており、運営の空挺が大きすぎる.
Excelにデータを追加しているパートタイムにDBとして配布できるWeb管理者ページを提供するために、Fluter 2.0から追加するAutocompleteコンポーネントを使用しました.
部品の使用は問題ありませんが、Post後に自動的に完了したFieldを初期化したいのですが、コントローラをパラメータとして単独で受け入れることはありません.
したがって、制御部品の方法を見つけるために、部品内部を表示および記録する.
内容
ソースコード
Autocomplete<String>(
optionsBuilder: (TextEditingValue textEditingValue) {
if (textEditingValue.text == '') {
return const Iterable<String>.empty();
}
return _kTeamNames.where((String option) {
return option.contains(textEditingValue.text);});
},
onSelected: (String selection) {
print('You select $selection');
homeTeamName.text = selection;
print('homeTeamName is ${homeTeamName.text}');
},
fieldViewBuilder: (context, controller,focusNode, onSubmit) {
homeTeamName = controller;
return TextFormField(controller: controller,focusNode: focusNode);
},
),
AutoComplete内部ではTextFormFieldを使用します.static Widget _defaultFieldViewBuilder(BuildContext context, TextEditingController textEditingController, FocusNode focusNode, VoidCallback onFieldSubmitted) {
return _AutocompleteField(
focusNode: focusNode,
textEditingController: textEditingController,
onFieldSubmitted: onFieldSubmitted,
);
}
TextFormFieldの実施部分fieldViewBuilder: (context, controller,focusNode, onSubmit) {
// 콜백함수에서 컨트롤러를 받아서 미리 선언해둔 컨트롤러에 주입
homeTeamName = controller;
return TextFormField(controller: controller,focusNode: focusNode);
},
コントローラせいぎょhomeTeamName.clear();
n/a.結論コントローラをパラメータにしていなかったので慌てましたが、うまく解決できてよかったです.
Reference
この問題について([Fluth]ドキュメントの自動完了), 我々は、より多くの情報をここで見つけました https://velog.io/@kyj5394/Flutter-Autocomplete-문서화テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol