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();
}