Flutter RaisedButton覆盖TextField

时间:2018-03-31 02:17:44

标签: dart flutter

我的应用中有一个TextField,紧接着是RaisedButton

当我输入TextField时,按钮会向上移动到键盘上方。如果我在TextField中一直向下滚动,我可以看到所有文本。但是,当我打字并转到新行时,它不会一直向下滚动,按钮会覆盖最后一行文本的一部分。

如何确保在输入时始终显示整行文字?
理想情况下,当我打字时,我不希望按钮不在键盘上方,而是隐藏起来。
但是,如果它更容易,我也可以使用一个确保TextField一直向下滚动的解决方案。

这是我的应用的(简化)相关部分:

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(title: new Text('Title')),
      body: new Column(children: <Widget>[
        new Expanded(child: new Container(
          child: new TextField(
            maxLines: null,
            controller: textController,
          ),
          padding: new EdgeInsets.all(8.0),
        )),
        new RaisedButton(
          onPressed: () => _myFunction(context),
          child: new Center(child: new Text('Save'))
        )
      ]),
    );
  }

1 个答案:

答案 0 :(得分:2)

添加

  

margin:new EdgeInsets.only(bottom:50.0),

在Expanded Widget中

 @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(title: new Text('Title')),
      body: new Column(children: <Widget>[
        new Expanded(child: new Container(
           margin: new EdgeInsets.only(bottom: 50.0),
          child: new TextField(
            maxLines: null,
            controller: textController,
          ),
          padding: new EdgeInsets.all(8.0),
        )),
        new RaisedButton(
          onPressed: () => _myFunction(context),
          child: new Center(child: new Text('Save'))
        )
      ]),
    );
  }