由于某种原因,更新颤动后,我的应用程序其中一个部分已损坏。我在SingleChildScrollView中设置了文本表单小部件的列表。每当我按下其中一种文本形式时,就会出现键盘,并且空白的空白框会将自身向上推入视野,从而使文本输入框变得模糊。
在遇到列表视图中的文本输入问题后,我才遵循以下链接的建议:https://www.didierboelens.com/2018/04/hint-4-ensure-a-textfield-or-textformfield-is-visible-in-the-viewport-when-has-the-focus/
它有效地解决了我以前遇到的问题,即当出现键盘时,文本输入框仍然不可见。但是,现在出现了while框,并且遮挡了视图。我还确保使用:
resizeToAvoidBottomPadding: false
按照常规建议。
以下是有问题的代码以及文本字段小部件的代码之一:
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new SafeArea(
child: new Form(
key: _formKey,
child: new SingleChildScrollView(
padding: const EdgeInsets.all(16.0),
child: new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
circumstances(),
divider(),
description(),
divider(),
externalHappenings(),
divider(),
internalHappenings(),
divider(),
reflectionsAndCorrections(),
divider(),
abatement(),
divider(),
footerButtons()
],
),
)
)
),
resizeToAvoidBottomPadding: false,
);
}
Widget circumstances() {
return new EnsureVisibleWhenFocused(
focusNode: _focusNodeCircumstances,
child: new TextFormField(
controller: _circumstancesController,
maxLines: maxLines,
decoration: const InputDecoration(
border: const OutlineInputBorder(
borderRadius: const BorderRadius.all(const Radius.circular(0.0)),
borderSide: const BorderSide(color: Colors.black, width: 1.0)
),
filled: true,
labelText: "Circumstances",
hintText: "Who was there? Where were you?",
),
autofocus: true,
validator: (value) {
_activeJournalEntry.setCircumstances(value);
if(value == null || value.isEmpty) {
return "Please enter some circumstances.";
}
},
focusNode: _focusNodeCircumstances,
),
);
}
答案 0 :(得分:2)
对此主题的回复为我指明了解决问题的正确方向。
我有3个深层嵌套的脚手架,其中最里面的2个有此设置:
resizeToAvoidBottomPadding: false
但是,我最外面的脚手架却没有,从而导致了此问题。因此,事实证明,嵌套嵌套脚手架是可以的,但是您必须确保每个支架都具有该属性集,以免发生此问题。
另请参阅