// main.dart import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return GestureDetector( onTap: () { FocusScopeNode currentFocus = FocusScope.of(context); if (!currentFocus.hasPrimaryFocus) { currentFocus.unfocus(); } }, child: MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(), ), ); } }
我们需要检查当前的FocusNode是否有 "主要焦点"。如果没有,我们就在当前节点上调用unfocus()来移除焦点,并触发键盘来回收。
如果你试图对当前拥有主要焦点的节点取消焦点(),Flutter会抛出一个异常。