Flutter 监听键盘打开或者关闭

1,036 阅读1分钟

1.注入

with WidgetsBindingObserver

2.initState初始化

WidgetsBinding.instance.addObserver(this);

3.监听应用窗口改变

 @override
  void didChangeMetrics() {
    super.didChangeMetrics();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      setState(() {
        if (MediaQuery.of(context).viewInsets.bottom == 0) {
          //关闭键盘
          print('键盘关闭');
        } else {
          //显示键盘
          print('键盘打开');
        }
      });
    });
  }

4.销毁

 @override
  void dispose() {
    // TODO: implement dispose
    //销毁
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }