我在控制台上收到此警告
W/IInputConnectionWrapper(25185): getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper(25185): getSelectedText on inactive InputConnection
W/IInputConnectionWrapper(25185): getTextAfterCursor on inactive InputConnection
我正在使用dateTime键盘,当我在文本字段中输入文本时,光标会移动到“文本”之前。真烦人我读到某个地方需要处置/关闭TextEditing控制器。我不确定这是什么意思。任何人都知道如何消除这些警告和TextInputController上的怪异行为。
答案 0 :(得分:1)
我有同样的问题, 我的任务 我想清除按钮上的文本字段
这是我的代码
String searchData = "";
TextEditingController searchEditor = TextEditingController();
Row(
children: <Widget>[
Expanded(
child: TextField( // My textbox
controller: searchEditor,
autofocus: false,
onChanged: (str){
searchData = (str == null)? "" : str;
setState(() {
});
},
decoration: InputDecoration(
prefixIcon: IconTheme(
child: Icon(Icons.search),
data: IconThemeData(color: Colors.blueAccent),
),
labelText: 'Search',
),
),
flex: 8,
),
Expanded(
child: RaisedButton(
color: Basic.hbColor,
textColor: Colors.white,
child: Icon(Icons.clear),
onPressed: (){ // On button click
FocusScope.of(context).unfocus(); // Close keyboard
setState(() {
searchData = "";
});
Future.delayed(Duration(microseconds: 500),(){ //call back after 500 microseconds
searchEditor.clear(); // clear textfield
});
},
elevation: 10,
),
flex: 2,
)
],
)
我通过使用“ searchEditor.clear();”解决了内部Future.delayed
因为当我们调用 FocusScope.of(context).unfocus(); 来关闭键盘时,关闭需要花费几微秒的时间,这就是为什么显示此 WANRING 的原因
即getTextBeforeCursor on inactive InputConnection
克服我叫searchEditor.clear();几微秒后的方法
对我有用。
答案 1 :(得分:0)
在按下按钮之前,必须最小化/关闭键盘,否则不会收到任何警告。
答案 2 :(得分:-1)
您需要先创建变量
<<< var _controller = TextEditingController(); >>>
然后创建文本字段的属性并将其传递
<<<controller: _controller,>>>
然后当事情完成时就做
<<<_controller.clear();>>>