Flutter showModalBottomSheet被软键盘遮挡

image.png
解决方案:

1.给 showModalBottomSheet 设置 isScrollControlled: true ;使用其他限制宽高的控件限制showModalBottomSheet 高度,例如我使用的Container。
2.设置AnimatedPadding(
padding: MediaQuery.of(context).viewInsets,
duration:const Duration(milliseconds: 100),
给软键盘留出空间。

3.如果集成到原生里面,例如Android 需要在清单文件配置上 android:windowSoftInputMode="adjustResize" 属性

4.如果是showDialog()的方式弹出的Dialog,最外层的布局使用 Scaffold 就可以自动上移了;

部分关键代码如下:

  await showModalBottomSheet(
        context: context1,
        isScrollControlled: true,
        isDismissible:false,
        builder: (BuildContext context) {
          return AnimatedPadding(
            padding: MediaQuery.of(context).viewInsets,
            duration:const Duration(milliseconds: 100),

            child: Container(
              height: 260.hh,
              child: Column(
                children: [

你可能感兴趣的:(Flutter showModalBottomSheet被软键盘遮挡)