Flutter 全局點擊空白處隱藏鍵盤實戰(zhàn)
老孟導(dǎo)讀:為什么要實現(xiàn)點擊空白處隱藏鍵盤?因為這是 iOS 平臺的默認(rèn)行為,Android 平臺由于其彈出的鍵盤右上角默認(rèn)帶有關(guān)閉鍵盤的按鈕,所以點擊空白處不會隱藏鍵盤。
對于單個頁面來說,通過為 TextField 添加 focusNode,點擊空白處時使 TextField 失去焦點,實現(xiàn)如下:
class DismissKeyboardDemo extends StatelessWidget { final FocusNode focusNode = FocusNode(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: GestureDetector( onTap: () { focusNode.unfocus(); }, child: Container( color: Colors.transparent, alignment: Alignment.center, child: TextField( focusNode: focusNode, ), ), ), ); } }
當(dāng) App 中有多個頁面多個 TextField 時,此方式會增加大量重復(fù)的代碼,因此全局添加點擊空白處的監(jiān)聽:
class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', builder: (context, child) => Scaffold( body: GestureDetector( onTap: () { FocusScopeNode currentFocus = FocusScope.of(context); if (!currentFocus.hasPrimaryFocus && currentFocus.focusedChild != null) { FocusManager.instance.primaryFocus.unfocus(); } }, child: child, ), ), home: DismissKeyboardDemo(), ); } }
也可以使用如下方式隱藏鍵盤:
SystemChannels.textInput.invokeMethod('TextInput.hide');
修改 DismissKeyboardDemo 頁面:
class DismissKeyboardDemo extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: Center( child: TextField(), ), ); } }
效果和上面是一樣的,同樣可以實現(xiàn)點擊空白處隱藏鍵盤。
到此這篇關(guān)于Flutter 全局點擊空白處隱藏鍵盤實戰(zhàn)的文章就介紹到這了,更多相關(guān)Flutter 全局點擊空白處隱藏鍵盤內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Flutter使用SingleTickerProviderStateMixin報錯解決
這篇文章主要為大家介紹了Flutter使用SingleTickerProviderStateMixin報錯解決示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Android實現(xiàn)音頻條形圖效果(仿音頻動畫無監(jiān)聽音頻輸入)
這篇文章主要介紹了Android實現(xiàn)音頻條形圖效果(仿音頻動畫無監(jiān)聽音頻輸入)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09AndroidImageSlider實現(xiàn)炫酷輪播廣告效果
這篇文章主要為大家詳細(xì)介紹了AndroidImageSlider實現(xiàn)炫酷輪播廣告效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08解決Android 6.0獲取wifi Mac地址為02:00:00:00:00:00問題
這篇文章主要介紹了Android 6.0獲取wifi Mac地址為02:00:00:00:00:00的解決方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-11-11Android 實現(xiàn)帶頭部文字輸入框的自定義控件
這篇文章主要介紹了Android 實現(xiàn)帶頭部文字輸入框的自定義控件,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-04-04