美文网首页
flutter-监听键盘弹出和回收

flutter-监听键盘弹出和回收

作者: ChaosHeart | 来源:发表于2020-12-08 14:43 被阅读0次

    监听软键盘的弹出和回收:

    //继承 WidgetsBindingObserver 类
    class BottomKeyboardInputState extends State<BottomKeyboardInput> with WidgetsBindingObserver {  
    
      @override
      void initState() {
        // TODO: implement initState
    
        super.initState();
        //初始化
        WidgetsBinding.instance.addObserver(this);
       }
    
      @override
      void didChangeMetrics() {
        super.didChangeMetrics();
        WidgetsBinding.instance.addPostFrameCallback((_) {
          setState(() {
    
              if(MediaQuery.of(context).viewInsets.bottom==0){
                //关闭键盘
    
               }else{
                //显示键盘
              }
    
          });
        });
      }
    
       @override
      void dispose() {
        // TODO: implement dispose
        //销毁
        WidgetsBinding.instance.removeObserver(this);
    
        super.dispose();
      }
    
    }
    

    注意:

    当MediaQuery.of(context).viewInsets.bottom获取键盘高度是0, 就查看父级组件的高度

     child: Scaffold(
                  resizeToAvoidBottomInset:false,//只要子组件需要监听键盘高度 ,父组件的所有该属性都应该设置false
                  appBar: CenterTitleAppBar(
                    title: '页面title',
                  ),
                  body: ContentPage(),
     ),
    
    

    参考:

    https://blog.csdn.net/weixin_34082177/article/details/91370675

    相关文章

      网友评论

          本文标题:flutter-监听键盘弹出和回收

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