当 TextField 处于焦点时呈现溢出
Render overflow when TextField is in focus
我有 Column,里面有 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"),
),
]),
],
)
],
);
}
我觉得这个问题在
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: () {})
],
);
}
我想这会对你有所帮助。
我有 Column,里面有 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"),
),
]),
],
)
],
);
}
我觉得这个问题在
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: () {})
],
);
}
我想这会对你有所帮助。