赞
踩
showModalBottomSheet弹出的底部Dialog难免会有输入框,在输入时 软键盘会遮盖住Dialog;
解决方法:让showModalBottomSheet弹出的Dialog在软键盘之上;
1、给 showModalBottomSheet 设置 isScrollControlled: true ;设置后Dialog会全屏、然后在用 SizedBox 限制弹框宽高;
2、showModalBottomSheet 的 Widget最外层使用AnimatedPadding,让软键盘弹出后 布局可以滑动到软键盘上面;
- showModalBottomSheet<bool>(
- context: context,
- builder: (BuildContext context) {
- return AnimatedPadding(
- padding: MediaQuery.of(context).viewInsets,
- duration: const Duration(milliseconds: 100),
- child: SizedBox(
- height: ScreenUtil().screenHeight * 0.5,
- // color: Colors.white,
- child: TextField(
- maxLength: 100,
- maxLines: 5,
- ),
- ),
- );
- },
- isDismissible: false,
- isScrollControlled: true,);
如果集成到原生里面,例如Android 需要在清单文件配置上 android:windowSoftInputMode="adjustResize" 属性
如果是showDialog()的方式弹出的Dialog,最外层的布局使用 Scaffold 就可以自动上移了;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。