欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flutter 全局點擊空白處隱藏鍵盤實戰(zhàn)

 更新時間:2020年09月03日 11:33:33   作者:老孟Flutter  
這篇文章主要介紹了Flutter 全局點擊空白處隱藏鍵盤實戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

老孟導(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)文章

最新評論