Flutter当中我们如何全局关闭键盘小技巧学习AndroidiOS可运行
本头条核心宗旨
欢迎来到「技术刚刚好」作者,「技术刚刚好」是个人维护,每天至少更新一篇Flutter技术文章,实时为大家播报Flutter最新消息。如果你刚好也在关注Flutter这门技术,那就跟我一起学习进步吧,你的赞,收藏,转发是对我个人最大的支持,维护不易,欢迎关注。技术刚刚好经历
近几年,移动端跨平台开发技术层出不穷,从Facebook家的ReactNative,到阿里家WEEX,前端技术在移动端跨平台开发中大展身手,技术刚刚好作为一名Android开发,经历了从Reactjs到Vuejs的不断学习。而在2018年,我们的主角变成了Flutter,这是Goolge开源的一个移动端跨平台解决方案,可以快速开发精美的移动App。希望跟大家一起学习,一起进步!本文核心要点
一般做Android开发,打我们打开键盘过后如果你不设置别的方法可能键盘就不会自动关闭,而苹果就吧一样,当你点击屏幕别的地方位置,就会自动隐藏键盘。
那我们在flutter当中有没有比较简单的方法来实现了,本文就介绍给大家了。void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: "Flutter Demo", theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), builder: (context, child) => Scaffold( // Global GestureDetector that will dismiss the keyboard body: GestureDetector( onTap: () { // When running in iOS, dismiss the keyboard when any Tap happens outside a TextField if (Platform.isIOS) hideKeyboard(context); }, child: child, ), ), home: MyHomePage(title: "Flutter Demo Home Page"), ); } void hideKeyboard(BuildContext context) { FocusScopeNode currentFocus = FocusScope.of(context); if (!currentFocus.hasPrimaryFocus && currentFocus.focusedChild != null) { FocusManager.instance.primaryFocus.unfocus(); } } }
MaterialApp的builder方法可用于在Navigator上方但在其他Widget下方插入Widget。我们仅添加了一个"全局" GestureDetector,它将为我们处理键盘关闭。结果如下所示:
谢谢观看技术刚刚好的文章,技术刚刚好是个人维护,每天至少更新一篇Flutter技术文章,为大家播报Flutter最新消息。如果你刚好也在关注Flutter这门技术,那就跟我一起学习进步吧,你的赞,收藏,转发是对我个人最大的支持,维护不易,欢迎关注。