当前位置:   article > 正文

Flutter 输入框(TextField)被键盘遮挡两种解决方案_flutter 键盘遮挡输入框问题

flutter 键盘遮挡输入框问题

在实现Flutter页面过程中,可能会遇到输入框在底部显示问题,配置不好就会出现输入框被键盘遮挡问题,如下提供两种解决方案,根据自己场景可选择使用.

方案一:

如果没有ScrollView或者ListView等可滚动空间包裹,则可以通过 padding设置实现键盘不被遮挡问题

  1. Padding(
  2.   padding: EdgeInsets.only(
  3.     bottom: MediaQuery.of(context).viewInsets.bottom
  4.   ),
  5.   child: TextField(
  6.   )
  7. )


MediaQuery.of(context).viewInsets.bottom 为键盘弹出时键盘高度,如果上面代码段被可滚动widget包裹,则会出现输入框并不一定在紧挨着键盘

方案二: 通过 Scaffold

Scaffold是自带自适应输入法弹出的,它有一个属性resizeToAvoidBottomInset,用来控制Scaffold组件是否需要自适应输入法弹出,重新计算view的高度,默认为 true 适应键盘模式

  1. Scaffold(
  2. resizeToAvoidBottomInset: false,
  3. appBar: AppBar(
  4. title: Text(widget.title),
  5. ),
  6. body: _buildContentView(context) //被ListView或者SingleChildScrollView等滑动控件包裹的TextField
  7. );

_buildContentView 可以含有输入框的控件

注意:如果有自定义的APPBar控件,不配置appBar的话顶部会多一部分高度的空View

  1. AppBar(
  2. title: Text('Title'),
  3. centerTitle: true,
  4. elevation: 0,
  5. toolbarHeight: 0.001,
  6. bottom: null,
  7. brightness:Brightness.light ,
  8. )

可以设置  toolbarHeight 的高度,如果要设置状态栏的颜色则 toolbarHeight 高度不能为 0,否则 设置状态栏文字颜色的 brightness 属性就失效.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/268692
推荐阅读
相关标签
  

闽ICP备14008679号