如何在 TextFormfield flutter 2.0.1 中关闭键盘

Jul*_*Pak 4 flutter flutter2.0

嘿,我该如何关闭这里的键盘?我希望键盘在该区域外点击时关闭。

  Widget build(BuildContext context) {
return Padding(
  padding: const EdgeInsets.fromLTRB(15, 0, 15, 0),
  child: TextFormField(
    keyboardType: TextInputType.number,
    maxLength: 10,
    controller: widget._phoneController,
    onTap: () => FocusScope.of(context).unfocus(),
    inputFormatters: [
      //input type
      FilteringTextInputFormatter.allow(
        RegExp(r'[0-9]'),
      ),
    ],
    //how the text box is decorated
    decoration: buildInputDecoration(
        Icons.phone, 'Enter your 10 digit phone number'),
  ),
);
}
Run Code Online (Sandbox Code Playgroud)

Roh*_*kol 6

您可以使用可以检测点击的小部件来包装跨越整个屏幕的父小部件。在里面onClick

FocusScope.of(context).unfocus()
Run Code Online (Sandbox Code Playgroud)

FocusScope.of(context)获取当前聚焦的节点并将.unfocus()其取消聚焦。

这是有效的,因为当TextFormField单击时,它会消耗点击次数。所以父部件的onClick不会被触发。所以不会发生失焦的情况。

当我们单击外部时,父窗口小部件会消耗单击事件,因为它的子窗口部件都不会消耗该事件。因此,父母的onClick被触发。

下面是一个例子。您可以在 DartPad 上看到演示
(不过,最好在移动设备上运行它,这样您就可以看到屏幕键盘。)

FocusScope.of(context).unfocus()
Run Code Online (Sandbox Code Playgroud)