Flutter 如何处理TextField中的空值。[颤振]
在该应用程序中有两个屏幕,第一个屏幕在Flutter 如何处理TextField中的空值。[颤振],flutter,Flutter,在该应用程序中有两个屏幕,第一个屏幕在列表中显示所有用户输入的字符串,第二个屏幕有一个文本字段,它接受用户输入,并使用onEditingComplete返回第一个屏幕。用户将能够通过在第一个屏幕中使用FAB导航到第二个屏幕。当用户未在文本字段中键入任何内容并返回上一页时,存储用户输入值的字符串将返回“null”。我添加了一个if语句,该语句仅在TextField不为空时才会返回到第一页,但当我单击submit时,它根本不会导航到第一个屏幕 我可以得到一个关于如何修改代码的建议,以便文本字段中的空
列表中显示所有用户输入的字符串
,第二个屏幕有一个文本字段
,它接受用户输入,并使用onEditingComplete
返回第一个屏幕。用户将能够通过在第一个屏幕中使用FAB导航到第二个屏幕。当用户未在文本字段中键入任何内容并返回上一页时,存储用户输入值的字符串将返回“null”。我添加了一个if
语句,该语句仅在TextField
不为空时才会返回到第一页,但当我单击submit时,它根本不会导航到第一个屏幕
我可以得到一个关于如何修改代码的建议,以便文本字段
中的空值不会保存到字符串
并导航回第一个屏幕
导航到输入(第二)屏幕的晶圆厂:
接收用户输入的文本字段:
TextField(
autofocus: true,
onEditingComplete: (){
String textToSendBack = taskcontroller.text;
if(taskcontroller.text.isNotEmpty) {
Navigator.pop(context, textToSendBack);
}
},
// onSubmitted: (value) {
// String textToSendBack = taskcontroller.text;
// Navigator.pop(context, value);
// },
maxLength: 100,
controller: taskcontroller,
decoration: InputDecoration(
labelText: "enter tasks here"
),
style: TextStyle(height: 1.2, fontSize: 20, color: Colors.black87),
)
您可以这样做:
String textToSendBack = taskcontroller.text;
if(textToSendBack != null){
Navigator.pop(context, textToSendBack);
}
这只会在文本不是空时将您带回另一个屏幕。否则,您将停留在当前屏幕上等待有效输入
我希望我正确理解了你的问题。对我来说,它运行良好isEmpty或isNotEmpty
_titleController.text.isEmpty
_titleController.text.isNotEmpty
它导航回第一个屏幕,但字符串
仍用空格保存。我希望它导航到第一个屏幕,而不保存字符串textToSendBack
中的任何内容。好的,我通过向添加任务的函数添加相同的条件(String.isNotEmpty
)解决了这个问题,现在它不保存到字符串中。谢谢你的帮助:)。
_titleController.text.isEmpty
_titleController.text.isNotEmpty