如何用 flutter 在 android 中实现(完成)按钮
how to implement the (Done) button in android with flutter
我想在 textField 更改时实现搜索 api,现在可以正常工作,但我应该按 android 移动键盘上的 (DONE) 按钮,我需要这样做什么(完成)按钮在(onCahnged)或任何其他按钮中枯萎,谢谢...
这是我的代码:
这是当我用文本字段中的搜索词调用 api 时,它工作没有问题:
TextEditingController search = TextEditingController();
searchCat() async {
var res = await http.get(Config.url+"cat/"+search.text);
if(res.statusCode == 200){
var jsonObject = json.decode(res.body);
return jsonObject['result'];
}
}
这是我的 TextField:
child: TextField(
controller: search,
onChanged: (txt){
searchCat();
},
autofocus: false,
style: TextStyle(fontSize: 15.0, color: Colors.black),
decoration: InputDecoration(
filled: true,
fillColor: Colors.white,
hintText: 'Searching',
contentPadding:
const EdgeInsets.only(left: 14.0, bottom: 5.0, top: 5.0),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.white),
borderRadius: BorderRadius.circular(10),
),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.white),
borderRadius: BorderRadius.circular(10),
),
),
和这个显示数据的代码,正如我所说,它工作完美,但就在我按下键盘上的(完成)按钮时
Center(
child: FutureBuilder(
future: searchCat(),
builder: (context, snapshot){
if(snapshot.data != null){
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index){
return CatTile(
cid: snapshot.data[index]['id'],
img:snapshot.data[index]['img'],
name: snapshot.data[index]['name'],
desc: snapshot.data[index]['desc'],
);
},
);
}else{
return Center(child: CircularProgressIndicator(),);
}
},
提前致谢....
完成按钮有什么作用?我认为这会使 TextField 失去焦点 => 因此我们可以使用 FocusNode
class.
我想在 textField 更改时实现搜索 api,现在可以正常工作,但我应该按 android 移动键盘上的 (DONE) 按钮,我需要这样做什么(完成)按钮在(onCahnged)或任何其他按钮中枯萎,谢谢...
这是我的代码: 这是当我用文本字段中的搜索词调用 api 时,它工作没有问题:
TextEditingController search = TextEditingController();
searchCat() async {
var res = await http.get(Config.url+"cat/"+search.text);
if(res.statusCode == 200){
var jsonObject = json.decode(res.body);
return jsonObject['result'];
}
}
这是我的 TextField:
child: TextField(
controller: search,
onChanged: (txt){
searchCat();
},
autofocus: false,
style: TextStyle(fontSize: 15.0, color: Colors.black),
decoration: InputDecoration(
filled: true,
fillColor: Colors.white,
hintText: 'Searching',
contentPadding:
const EdgeInsets.only(left: 14.0, bottom: 5.0, top: 5.0),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.white),
borderRadius: BorderRadius.circular(10),
),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.white),
borderRadius: BorderRadius.circular(10),
),
),
和这个显示数据的代码,正如我所说,它工作完美,但就在我按下键盘上的(完成)按钮时
Center(
child: FutureBuilder(
future: searchCat(),
builder: (context, snapshot){
if(snapshot.data != null){
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index){
return CatTile(
cid: snapshot.data[index]['id'],
img:snapshot.data[index]['img'],
name: snapshot.data[index]['name'],
desc: snapshot.data[index]['desc'],
);
},
);
}else{
return Center(child: CircularProgressIndicator(),);
}
},
提前致谢....
完成按钮有什么作用?我认为这会使 TextField 失去焦点 => 因此我们可以使用 FocusNode
class.