我正在构建一个移动的应用程序,我想删除一个小部件时,键盘出现在屏幕上,即当输入文本字段的焦点。
我尝试使用RawKeyboardListener
,但似乎不起作用,我的代码如下:
new Container(
child: new RawKeyboardListener(
focusNode: new FocusNode(),
onKey: (input) => debugPrint("*****KEY PRESSED"),
child: new TextField(
controller: new TextEditingController(),
),
),
);
6条答案
按热度按时间9lowa7mx1#
您可以使用这个简单的检查:
当返回true时,键盘关闭,否则键盘打开。请注意,要获取整个屏幕的上下文(例如Scaffold),而不仅仅是一个小部件。
下面是如何将检查集成到代码中:
wfsdck302#
当文本字段被聚焦时,键盘将自动出现。所以你可以在focusnode中添加一个listner来监听焦点的变化并隐藏相应的widget。
示例:
pdsfdshx3#
我用的是
keyboard_visibility
包然后我用
KeyboardListener
Package 了我的TextField
,实现如下:mec1mxoz4#
您可以使用此库keyboard_visibility:^0.5.6,在:https://pub.dev/packages/keyboard_visibility
要执行代码,请在initState()中插入
KeyboardVisibilityNotification.addNewListener( onChange: (bool visible) { print(visible); this.setState(() { keyboardIsOpen = visible; }); }, );
每当键盘打开或关闭时,库都会调用具有可见性布尔值的onChange方法。
yks3o0rb5#
检查键盘是否打开,可以使用
WidgetsBinding.instance.window.viewInsets.bottom
,由Deepak Raj回答或者您可以用途:键盘VisibilityBuilder
作者:Andrey Gordeev
6ie5vjzr6#
每当用户按下或释放键盘上的键时调用回调的小部件。
RawKeyboardListener对于侦听原始键事件和表示为键的硬件按钮非常有用。通常用于游戏和其他使用键盘进行文本输入以外的用途的应用程序。
对于文本输入,请考虑使用EditableText,它与屏幕键盘和输入法编辑器(IME)集成。
创建接收原始键盘事件的小部件。
对于文本输入,请考虑使用EditableText,它与屏幕键盘和输入法编辑器(IME)集成。
执行情况