Flutter 键盘的监听

作者: 月未雪 | 来源:发表于2019-11-04 15:47 被阅读0次

    1.键盘弹出

         final FocusNode _focusNode = new FocusNode();
          new TextField(
                               focusNode: _focusNode,
                             ),
    
    2.请求收起键盘
         FocusScope.of(context).requestFocus(new FocusNode());
    
    3.监听键盘是否显示
    
         WidgetsBinding.instance.addPostFrameCallback(() {
              setState(() {
    
                键盘高度:大于零,键盘弹出,否则,键盘隐藏
                MediaQuery.of(context).viewInsets.bottom > 0;
    
    
              });
            });
    
    
         class _KeyboardDetectorState extends State<KeyboardDetector>
                     with WidgetsBindingObserver {
                   @override
                   void initState() {
                     WidgetsBinding.instance.addObserver(this);
                     super.initState();
                   }
    
                   @override
                   void didChangeMetrics() {
                     super.didChangeMetrics();
                     WidgetsBinding.instance.addPostFrameCallback((_) {
                       setState(() {
                         widget.keyboardShowCallback
                             ?.call(MediaQuery.of(context).viewInsets.bottom > 0);
                       });
                     });
                   }
    
                   @override
                   void dispose() {
                     WidgetsBinding.instance.removeObserver(this);
                     super.dispose();
                   }
    

    相关文章

      网友评论

        本文标题:Flutter 键盘的监听

        本文链接:https://www.haomeiwen.com/subject/wesdbctx.html