赞
踩
//是否显示键盘 bool isShowKeyboard = false; double keyboardSize = Global.screenHeight * 0.4; @override void initState() { super.initState(); //输入框焦点监测 _focusNode.addListener(() { if (_focusNode.hasFocus) { //下面这句是当UI被遮挡的时候,遮挡高度大于0时就意味着键盘弹起来了 if (MediaQuery.of(context).viewInsets.bottom > 0) { //设置为true isShowKeyboard = true; } } else { isShowKeyboard = false; } if (mounted) { setState(() {}); } }); } //软键盘高度 @override void didChangeMetrics() { super.didChangeMetrics(); WidgetsBinding.instance!.addPostFrameCallback((_) { // 以后是安卓零碎并且在焦点聚焦的状况下 if (Platform.isAndroid && _focusNode.hasFocus) { if (MediaQuery.of(context).viewInsets.bottom > 0) { isShowKeyboard = true; } else { isShowKeyboard = false; } if (mounted) { setState(() {}); } } }); } //如果isShowKeyboard是true就用下边距为keyboardSize(Global.screenHeight * 0.4),如果是false就是30了 布局中就可以设置bottom: isShowKeyboard ? keyboardSize : 30
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。