Flutter showModalBottomSheet被软键盘遮挡,Dialog在软键盘上面;

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 就可以自动上移了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值