gpt4 book ai didi

flutter - 取消键盘焦点在按下的多个按钮上

转载 作者:行者123 更新时间:2023-12-03 03:00:11 29 4
gpt4 key购买 nike

当我在textField之外的任何地方点击时,我都试图隐藏键盘。所以我用GestureDetector包装了Scaffold并用unfocused()设置了onTap。效果很好,但是当按下按钮时键盘仍处于 Activity 状态

  Widget build(BuildContext context) {
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
child: Scaffold(
appBar: AppBar(
actions: <Widget>[FlatButton(child: Text('Done'), onPressed: () {})],
),
body: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
FlatButton(
child: Text('something'),
onPressed: () {},
),
TextField(),
],
),
),
);
}

有什么办法可以消除焦点而不在所有按钮的onTap中添加未聚焦的焦点。原因是我那里有很多按钮,有些甚至设置了onLogTap,所以会有很多重复的代码

最佳答案

您还需要在onPressed()FlatButton方法内添加用于隐藏键盘的代码

FlatButton(
child: Text('something'),
onPressed: () {
FocusScope.of(context).unfocus();
},
),

was hoping for some solution where I wouldn't need so many duplicate codes to do one thing.



由于 GestureDetector小部件的click事件和 FlatButton的click事件不同,因此无法执行AFAIK,

您正在注册 FlatButton的不同/单独的单击事件,这就是为什么单击 FlatButton时键盘没有隐藏的原因

Now the reason why your keyboard not hiding when pressed on buttons



因为 GestureDetector小部件的click事件被 FlatButton的click事件覆盖

SOLUTION



您可以做一件事,创建隐藏键盘的通用方法,然后从按钮单击中调用该方法。

关于flutter - 取消键盘焦点在按下的多个按钮上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62425982/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com