Flutter 如何识别颤振的开始键入和结束(关闭键盘)
是否可以在颤振时识别开始键入和结束(关闭键盘)Flutter 如何识别颤振的开始键入和结束(关闭键盘),flutter,dart,Flutter,Dart,是否可以在颤振时识别开始键入和结束(关闭键盘) TextField( decoration: InputDecoration( hintText: 'Type a message', border: InputBorder.none, ), cursorColor: Palette.defaultColor, maxLines: 6
TextField(
decoration: InputDecoration(
hintText: 'Type a message',
border: InputBorder.none,
),
cursorColor: Palette.defaultColor,
maxLines: 6,
minLines: 1,
controller: controller,
),
您可以定义一个布尔值,并在onChanged方法中使其为真,并在2秒钟后将其变为假,如果停止写入,则将保持假,否则将变为真
bool _isWriting = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Padding(
padding: const EdgeInsets.all(18.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'${_isWriting ? "Writing..." : "writing stopped"}',
style: Theme.of(context).textTheme.headline4,
),
TextField(
decoration: InputDecoration(
hintText: 'Type a message',
border: InputBorder.none,
),
cursorColor: Colors.cyan,
maxLines: 6,
minLines: 1,
controller: controller,
onChanged: (text) {
if (!_isWriting){
_isWriting = true;
setState((){});
Future.delayed(Duration(seconds: 2)).whenComplete((){
_isWriting = false;
setState((){});
});
}
}
),
],
),
),
),
);
}
bool\u isWriting=false;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(widget.title),
),
正文:中(
孩子:填充(
填充:常数边集全部(18.0),
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
“${u正在写作?”正在写作…:“写作已停止”}”,
风格:Theme.of(context).textTheme.headline4,
),
文本字段(
装饰:输入装饰(
hintText:'键入消息',
边框:InputBorder.none,
),
cursorColor:Colors.cyan,
maxLines:6,
小姑娘:1,
控制器:控制器,
一旦更改:(文本){
如果(!\u正在写入){
_isWriting=true;
setState((){});
未来。延迟(持续时间(秒:2))。完成时(){
_isWriting=false;
setState((){});
});
}
}
),
],
),
),
),
);
}
这里是一个现场演示 您可以定义一个布尔值,并在onChanged方法中使其为真,然后在2秒钟后将其变为假,如果停止写入,则它将保持假,否则它将变为真
bool _isWriting = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Padding(
padding: const EdgeInsets.all(18.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'${_isWriting ? "Writing..." : "writing stopped"}',
style: Theme.of(context).textTheme.headline4,
),
TextField(
decoration: InputDecoration(
hintText: 'Type a message',
border: InputBorder.none,
),
cursorColor: Colors.cyan,
maxLines: 6,
minLines: 1,
controller: controller,
onChanged: (text) {
if (!_isWriting){
_isWriting = true;
setState((){});
Future.delayed(Duration(seconds: 2)).whenComplete((){
_isWriting = false;
setState((){});
});
}
}
),
],
),
),
),
);
}
bool\u isWriting=false;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(widget.title),
),
正文:中(
孩子:填充(
填充:常数边集全部(18.0),
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
“${u正在写作?”正在写作…:“写作已停止”}”,
风格:Theme.of(context).textTheme.headline4,
),
文本字段(
装饰:输入装饰(
hintText:'键入消息',
边框:InputBorder.none,
),
cursorColor:Colors.cyan,
maxLines:6,
小姑娘:1,
控制器:控制器,
一旦更改:(文本){
如果(!\u正在写入){
_isWriting=true;
setState((){});
未来。延迟(持续时间(秒:2))。完成时(){
_isWriting=false;
setState((){});
});
}
}
),
],
),
),
),
);
}
这里是一个现场演示