底部溢出 30px
Bottom overflow by 30px
我用 new Expanded()
包装 TextField
时遇到问题。当尝试在 textfield
中搜索内容时,它显示底部溢出 30px
。下面是我的代码:
Widget build(BuildContext context) {
return new Scaffold(
body:
Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
IconButton(icon: Icon(Icons.search), onPressed: () {
setState(() {
});
}),
new Flexible(
child: new TextField(
onChanged: (String value) {
onchange(value);
},
maxLines: 1,
autocorrect: true,
// decoration: const InputDecoration(helperText: "Search"),
style: new TextStyle(fontSize: 10.0, color: Colors.black),
),
),
_text != null ? IconButton(
icon: Icon(Icons.close), onPressed: (){
}) : new Container(),
IconButton(icon: Icon(Icons.bookmark_border), onPressed: () {}),
],
),
new Expanded(
child: FilstList(searchtext: _text,)
),
],
),
);
}
}
这个问题有两个个解决方案。
将 resizeToAvoidBottomPadding: false
添加到您的 Scaffold
Scaffold(
resizeToAvoidBottomPadding: false,
body: ...)
- 将您的
FilstList(searchtext: _text,)
放在 scrollableView
中(如 SingleChildScrollView
或 ListView
)
在脚手架中将 resizeToAvoidBottomPadding 设置为 false:
Scaffold(
resizeToAvoidBottomPadding: false,
更新
这是更好的解决方案:
删除 Column 并将其替换为 ListView
因为如果你 运行 这个应用程序在较小的设备底部项目将消失并隐藏在显示屏幕上,这对应用程序用户来说是不利的。
二手SigleChildScrollView
示例代码
Scaffold(
appBar: //AppBar
body: SingleChildScrollView(
padding: EdgeInsets.symmetric(horizontal: 5.0, vertical: 3.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
使用脚手架属性"resizeToAvoidBottomPadding: false"
和 "SingleChildScrollView" 作为脚手架主体的父级:
home: Scaffold(
resizeToAvoidBottomPadding: false,
appBar: AppBar(
title: Text("Registration Page"),
),
body: SingleChildScrollView(
child: RegisterUser(),
)),
这将解决问题。
你应该使用resizeToAvoidBottomInset
Scaffold(
resizeToAvoidBottomInset: false, // set it to false
...
)
如果您遇到溢出错误问题,请使用 SingleChildScrollView
。
Scaffold(
resizeToAvoidBottomInset: false, // set it to false
body: SingleChildScrollView(child: YourBody()),
)
我遇到了类似的问题并通过以下方式解决了它:
您可以用 SingleChildScrollView 或 ListView 包装它。
Scaffold(
body: Container(
height: MediaQuery.of(context).size.height * .50,
child: SingleChildScrollView(
child: Column(
....
)
)
)
);
两种方式
NO1.Scaffold(
resizeToAvoidBottomPadding:假,)
问题是当你做这个正文内容时,当你 select 输入框..
最佳实践
SingleChildScrollView 小部件
在您的脚手架中使用 resizeToAvoidBottomInset: false 是最好的解决方案。
我用 new Expanded()
包装 TextField
时遇到问题。当尝试在 textfield
中搜索内容时,它显示底部溢出 30px
。下面是我的代码:
Widget build(BuildContext context) {
return new Scaffold(
body:
Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
IconButton(icon: Icon(Icons.search), onPressed: () {
setState(() {
});
}),
new Flexible(
child: new TextField(
onChanged: (String value) {
onchange(value);
},
maxLines: 1,
autocorrect: true,
// decoration: const InputDecoration(helperText: "Search"),
style: new TextStyle(fontSize: 10.0, color: Colors.black),
),
),
_text != null ? IconButton(
icon: Icon(Icons.close), onPressed: (){
}) : new Container(),
IconButton(icon: Icon(Icons.bookmark_border), onPressed: () {}),
],
),
new Expanded(
child: FilstList(searchtext: _text,)
),
],
),
);
}
}
这个问题有两个个解决方案。
将
resizeToAvoidBottomPadding: false
添加到您的Scaffold
Scaffold( resizeToAvoidBottomPadding: false, body: ...)
- 将您的
FilstList(searchtext: _text,)
放在scrollableView
中(如SingleChildScrollView
或ListView
)
在脚手架中将 resizeToAvoidBottomPadding 设置为 false:
Scaffold(
resizeToAvoidBottomPadding: false,
更新 这是更好的解决方案: 删除 Column 并将其替换为 ListView
因为如果你 运行 这个应用程序在较小的设备底部项目将消失并隐藏在显示屏幕上,这对应用程序用户来说是不利的。
二手SigleChildScrollView
示例代码
Scaffold(
appBar: //AppBar
body: SingleChildScrollView(
padding: EdgeInsets.symmetric(horizontal: 5.0, vertical: 3.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
使用脚手架属性"resizeToAvoidBottomPadding: false" 和 "SingleChildScrollView" 作为脚手架主体的父级:
home: Scaffold(
resizeToAvoidBottomPadding: false,
appBar: AppBar(
title: Text("Registration Page"),
),
body: SingleChildScrollView(
child: RegisterUser(),
)),
这将解决问题。
你应该使用resizeToAvoidBottomInset
Scaffold(
resizeToAvoidBottomInset: false, // set it to false
...
)
如果您遇到溢出错误问题,请使用 SingleChildScrollView
。
Scaffold(
resizeToAvoidBottomInset: false, // set it to false
body: SingleChildScrollView(child: YourBody()),
)
我遇到了类似的问题并通过以下方式解决了它:
您可以用 SingleChildScrollView 或 ListView 包装它。
Scaffold(
body: Container(
height: MediaQuery.of(context).size.height * .50,
child: SingleChildScrollView(
child: Column(
....
)
)
)
);
两种方式
NO1.Scaffold( resizeToAvoidBottomPadding:假,) 问题是当你做这个正文内容时,当你 select 输入框..
最佳实践
SingleChildScrollView 小部件
在您的脚手架中使用 resizeToAvoidBottomInset: false 是最好的解决方案。