flutter 键盘溢出问题(overflow)

问题描述

  • 当布局高度写死时,例如设置为屏幕高度,这时候键盘弹起页面上会出现布局overflow的提示
  • 软键盘弹起后遮挡输入框
  • Stack 布局中跟随键盘抬起

原因:在flutter中,键盘弹起时系统会缩小Scaffold的高度并重建

1.解决overflow提示问题

  • 把Scaffold的resizeToAvoidBottomInset属性设置为false,这样在键盘弹出时将不会resize(输入框抵住键盘)
  • 把写死的高度改为 原高度 - MediaQuery.of(context).viewInsets.bottom,键盘弹出时布局将重建,而这个MediaQuery.of(context).viewInsets.bottom变量在键盘弹出前是0,键盘弹起后的就是键盘的高度

2.遮挡输入框问题

将输入框放进可滚动的Widget中(例如SingleChildScrollView)即可,当输入框获取焦点后,系统会自动将它滑动到可视区域.

你可能感兴趣的:(flutter 键盘溢出问题(overflow))