键盘将TextFields推离屏幕

时间:2018-08-06 02:14:33

标签: flutter

我一直在处理Flutter中的一种奇怪情况,但我无法弄清。

问题在于,当我尝试在任何类型的可滚动小部件中使用任何类型的TextField时,当我点击TextField以使键盘弹出时,键盘会将TextField推离屏幕。脚手架中的所有内容都是空白。

我不能确切地说出发生了什么,但有时似乎键盘似乎将可滚动视图的内容向上推过了视图,但有时似乎只是连接了一个巨大的白框覆盖上下文的键盘顶部。我已经做过几次实验,但是我无法确定确切的行为。

为清楚起见,我尝试使用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();
}

}

在按下文本字段之前

With Text Boxes

按下文本字段后

After Pressing Text Field

1 个答案:

答案 0 :(得分:3)

脚手架可以适当地处理此问题:

Myvenv exists

在极少数情况下,它不起作用,但是应该加以解决。