问题描述
我的应用程序中有多个TextField
和TextFormField
,但是我对其进行了自定义,以便它们可以在其下方显示错误消息。
由于现在显示错误,因此实际TextField之间的空间似乎更小。 那么,有没有办法在屏幕向上滚动时增加键盘和小部件之间的大小?
我假设此空间是在某个地方设置的值,但似乎找不到它。
所以这不是使屏幕滚动正常工作的问题,而是关于增加键盘之间的间距的问题。
谢谢。
解决方法
由于您使用了TextField
小部件,因此可以使用scrollPadding
属性,该属性指示您希望在所谓的viewInsets
(通常类似于UI键盘)之间有多少空间。和TextField
小部件。因此,您可以设置类似EdgeInsets.only(bottom: 32.0)
(默认值为20.0)。
请记住:仅当周围的Scrollable
(如ListView
)有足够的空间滚动到TextField
小部件以适合给定的scrollPadding
时,此方法才有效-否则,您会看到TextField
就在键盘上方,“忽略”了填充。要解决此问题,您可以将SizedBox
作为Scrollable
小部件中的最后一个条目,以确保在显示键盘后有足够的滚动位置:
ListView(
TextField(
scrollPadding: const EdgeInsets.only(bottom: 32.0),),SizedBox(height: MediaQuery.of(context).viewInsets.bottom + 32.0),