0

我有带有 TextField 和 Flexible 的列。灵活的由显示英雄角色列表的 ListView 组成。当我开始关注 TextField 时,显示器显示 x 像素的渲染溢出。怎么做才能避免这种情况?

  @override
  Widget build(BuildContext context) {
    return new Stack(
      children: <Widget>[
        new Padding(
          padding: new EdgeInsets.all(10.0),
          child: new TextField(
            keyboardType: TextInputType.text,
            controller: tc,
          ),
        ),
        new Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            new Container(
              margin: new EdgeInsets.only(top: 60.0),
              height: MediaQuery.of(context).size.height * 0.67,
              child: checkList(context, characterDataWrapper), //MY LISTVIEW
            ),
            new Flexible(
              fit: FlexFit.loose,
              child: new Container(),
            ),
            new Column(
                crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisSize: MainAxisSize.max,
                mainAxisAlignment: MainAxisAlignment.end,
                children: <Widget>[
                  new RaisedButton(
                    onPressed: getData,
                    color: Colors.red,
                    textColor: Colors.white,
                    child: new Text("Click"),
                  ),
                ]),
          ],
        )
      ],
    );
  }
4

1 回答 1

1

我认为这个问题在

new Container(
              margin: new EdgeInsets.only(top: 60.0),
              height: MediaQuery.of(context).size.height * 0.67,
              child: checkList(context, characterDataWrapper), //MY LISTVIEW
            ),

请提供您的代码或任何截图。

我认为您在顶部有一个文本字段,在中间有一个 Listview,在底部有一个按钮。

那你可以试试这样...

@override
  Widget build(BuildContext context) {
    return new Column(
      children: <Widget>[
        new TextField(
          decoration: new InputDecoration(hintText: "I am the TextField"),
        ),
        new Flexible(
            flex: 1,
            child: new ListView(
              children: <Widget>[
                new ListTile(
                  title: new Text("Some Text"),
                ),
                new ListTile(
                  title: new Text("Some Text"),
                ),
                new ListTile(
                  title: new Text("Some Text"),
                ),
                new ListTile(
                  title: new Text("Some Text"),
                ),
                new ListTile(
                  title: new Text("Some Text"),
                ),
                new ListTile(
                  title: new Text("Some Text"),
                ),
                new ListTile(
                  title: new Text("Some Text"),
                ),
                new ListTile(
                  title: new Text("Some Text"),
                ),
              ],
            )),
        new RaisedButton(onPressed: () {})
      ],
    );
  }

我想这会对你有所帮助。

于 2018-05-12T13:20:56.097 回答