[英]Flutter Disable and Enable Button based on the user input on textfield
[英]textField and textEditControl ,Get user input on button click - Flutter
我正在构建一个聊天屏幕并尝试从 textEditController 获取消息,而不是从消息 model 中获取消息
代码如下:
TextEditingController _controller =
new TextEditingController();
String _text = '';
....
IconButton(
icon: Icon(Icons.send),
iconSize: 25.0,
color: Theme.of(context).primaryColor,
onPressed: () async {
DataModel? data = await submitData(_controller);
_dataModel = data;
setState(
() {
_text = _controller.text.toString();
},
);
},
),
....
child: TextField(
controller: _controller,
textCapitalization: TextCapitalization.sentences,
onChanged: (value) {},
decoration: InputDecoration(hintText: 'Send a message...'),
),
您需要做的是在您的 TextEditingController 上调用addListener
function 并对其执行操作。 这是一个例子:
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
late final TextEditingController _controller;
@override
void initState() {
_controller = TextEditingController();
_controller.addListener(() {
final text = _controller.text;
// do something with text here
});
super.initState();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Home Page'),
),
body: TextField(
controller: _controller,
),
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.