我一直在处理一个奇怪的情况,我只是想不出来。
问题是,当我试图在任何可滚动小部件中使用任何类型的文本字段时,当我轻触文本字段以使键盘弹出时,键盘会将文本字段从屏幕上推开。脚手架上的东西都是空的。
我不能确切地说到底发生了什么,但有时似乎键盘将可滚动视图的内容向上推过视图,但有时似乎只是在键盘顶部附加了一个巨大的白色框来覆盖上下文。我做了几次实验,但我无法确定具体的行为。
为了清楚起见,我试过使用SingleChildScrollView和ListView。行为是一样的。
我通读了这篇文章,并尝试了解决方法,但没有成功:
https://github.com/flutter/flutter/issues/10826
我也试过使用这种解决方法:
https://gist.github.com/collinjackson/50172e3547e959cba77e2938f2fe5ff5
然而,我只是不确定我是否有与那些线程完全相同的问题。
下面是一个代码片段,演示了这个问题和一些屏幕截图。我只是在做一些明显的错误吗?
class MakeEntryView extends StatefulWidget {
@override
State<StatefulWidget> createState() => new MakeEntryState();
}
class MakeEntryState extends State<MakeEntryView> {
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new SingleChildScrollView(
child: new Container(
child: new Column(
children: <Widget>[
new TextField(),
new TextField(),
new TextField(),
new TextField(),
new TextField(),
new TextField(),
new TextField(),
],
),
),
)
);
}
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
}
在按下文本字段之前
按文本字段后