我得了TextField
分.我希望它的文本不是空的.(所以我想知道文本是否为空)
我try 使用以下代码,但不起作用:
controller.text.trim().isEmpty()
我的代码是:
TextFormField(
controller: controller,
),
controller.text.trim().isEmpty()
如何持续获取TextField
的文字是否在抖动中为空?如果有任何帮助,我将不胜感激.提前谢谢您!
我得了TextField
分.我希望它的文本不是空的.(所以我想知道文本是否为空)
我try 使用以下代码,但不起作用:
controller.text.trim().isEmpty()
我的代码是:
TextFormField(
controller: controller,
),
controller.text.trim().isEmpty()
如何持续获取TextField
的文字是否在抖动中为空?如果有任何帮助,我将不胜感激.提前谢谢您!
ValueListenableBuilder
在一些研究发现
controller.text
本身不是listenable
TextEditingController
扩展到ValueNotifier<TextEditingValue>
,即您可以使用material 包中的ValueListenableBuilder
来收听文本更改.代码:
class _MyWidgetState extends State<MyWidget> {
late TextEditingController textEditingController;
@override
void initState() {
textEditingController = TextEditingController();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
children: [
TextField(
controller: textEditingController,
),
ValueListenableBuilder<TextEditingValue>(
valueListenable: textEditingController,
builder: (context, value, child) {
return ElevatedButton(
onPressed: value.text.isNotEmpty ? () {} : null,
child: const Text('I am disabled when text is empty'),
);
},
),
],
),
),
);
}
}
不带文本:
带文本: