Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 关闭滚动键盘?_Flutter_Flutter Layout_Flutter Animation - Fatal编程技术网

Flutter 关闭滚动键盘?

Flutter 关闭滚动键盘?,flutter,flutter-layout,flutter-animation,Flutter,Flutter Layout,Flutter Animation,我在应用程序中有文本字段。轻触文本字段时,此键盘将自动打开。但当在它后面的列表(firebaseAnimatedList)上向下滚动时,键盘并没有关闭。这不正常,在iOS上是一个大问题,因为无法按“后退”按钮关闭 有人知道如何解决吗?您可以在列表中输入以下代码 FocusScope.of(context).requestFocus(newfocusnode())您可以将以下代码放入列表中 FocusScope.of(context).requestFocus(newfocusnode())我就是

我在应用程序中有文本字段。轻触文本字段时,此键盘将自动打开。但当在它后面的列表(firebaseAnimatedList)上向下滚动时,键盘并没有关闭。这不正常,在iOS上是一个大问题,因为无法按“后退”按钮关闭


有人知道如何解决吗?

您可以在列表中输入以下代码


FocusScope.of(context).requestFocus(newfocusnode())

您可以将以下代码放入列表中

FocusScope.of(context).requestFocus(newfocusnode())

我就是这么做的:

NotificationListener(
通知:(t){
if(t是用户滚动通知){
FocusScope.of(context.requestFocus(FocusNode());
}
},
子项:ListView.builder(
itemBuilder:(_,i)=>Container(),
itemCount:items.length,
),
);
附加一个
ScrollListener
对我来说不起作用,因为Android使用
ClampingScrollPhysics
,并且它只会在ListView项目比父项长时接收滚动事件。但是,
NotificationListener
将接收所有弹出的事件,包括
UserScrollNotification

这就是我所做的:

NotificationListener(
通知:(t){
if(t是用户滚动通知){
FocusScope.of(context.requestFocus(FocusNode());
}
},
子项:ListView.builder(
itemBuilder:(_,i)=>Container(),
itemCount:items.length,
),
);

附加一个
ScrollListener
对我来说不起作用,因为Android使用
ClampingScrollPhysics
,并且它只会在ListView项目比父项长时接收滚动事件。但是,
NotificationListener
将接收所有弹出的事件,包括
UserScrollNotification

这就是为您提供所需效果的原因:

NotificationListener(
 onNotification: (ScrollNotification scrollInfo) {

   if (scrollInfo is ScrollUpdateNotification) {
     if (scrollInfo.scrollDelta >= 20.0)      {
       FocusScope.of(context).requestFocus(FocusNode());
      }
     }

    },
 child: new FirebaseAnimatedList ...)

这就是为您提供所需效果的原因:

NotificationListener(
 onNotification: (ScrollNotification scrollInfo) {

   if (scrollInfo is ScrollUpdateNotification) {
     if (scrollInfo.scrollDelta >= 20.0)      {
       FocusScope.of(context).requestFocus(FocusNode());
      }
     }

    },
 child: new FirebaseAnimatedList ...)

你可以使用键盘来显示你的行为

return ListView.builder(
        keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag,

你可以使用键盘来显示你的行为

return ListView.builder(
        keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag,

谢谢回复!我可以用onTap()和GestureDetector实现。但不知道添加到滚动调用。我正在使用动画列表。当滚动动画列表键盘关闭时,在哪里添加动画列表?谢谢回复!我可以用onTap()和GestureDetector实现。但不知道添加到滚动调用。我正在使用动画列表。当滚动动画列表键盘关闭时,在何处添加?