使用 FocusScope.of(context).unfocus() 重建小部件树

Jos*_*uez 7 keyboard rebuild flutter

我有这个例子:

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Padding(
          padding: const EdgeInsets.all(30),
          child: GestureDetector(
            onTap: () {
              print('Hide keyboard!!!');
              FocusScope.of(context).unfocus();
            },
            child: Column(
              children: [
                Text(DateTime.now().toIso8601String()),
                TextFormField()
              ],
            ),
          ),
        ),
      ),
    );
  }
Run Code Online (Sandbox Code Playgroud)

当键盘出现或隐藏时,它会导致小部件重建。为什么会出现这种情况?

小智 8

实际上,我使用后找不到重建背后的原因

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

但这将帮助您停止重建小部件。

FocusManager.instance.primaryFocus.unfocus();
Run Code Online (Sandbox Code Playgroud)

它正在处理我的应用程序。