項目中登錄 輸入賬號密碼 彈出的鍵盤 關閉不了,從而 引來一些問題,
1,第一次關閉 項目是在 最外層包裹一層,點擊的時候進行關閉,
return Scaffold( resizeToAvoidBottomPadding: true, //輸入框抵住鍵盤 body: Builder( builder: (context) { FormKeyboardActions.setKeyboardActions(context, _buildConfig(context)); return ModalProgressHUD( inAsyncCall:_saving, color: Colors.black, progressIndicator: new CircularProgressIndicator(), child: InkWell( onTap: (){ FocusScope.of(context).requestFocus(FocusNode()); }, child: defaultTargetPlatform == TargetPlatform.iOS ? FormKeyboardActions( child: buildBody(), ) : SingleChildScrollView( child: buildBody(), ) , ) ); }, ));
2.更坑爹的是用戶不知道點擊空白的時候關閉鍵盤,其實是一個用戶的反饋,產品跟我說是一堆用戶反饋。我去
進一步的需求是鍵盤的上方 需要加一個條進行關閉
找了個插件 keyboard_actions 集成到項目中
遇到的問題是集成的過程中報了個錯。
調用
FormKeyboardActions.setKeyboardActions(context, _buildConfig(context));
錯誤:Context does not contain a FormKeyboardActions ancestor: see Scaffold.of for reference.
解決的辦法是 路由進入的時候包一層
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => FormKeyboardActions(
child: SizedBox(
width: screenWidth(),
height: screenHeight(),
child: KeyboardTest(),
))),
);
只有這一個問題比較坑,其他引入插件的過程中倒沒遇到什么問題,就不一一記錄了。