我有一个带有以下代码的页面,当我单击文本字段,键盘打开并覆盖文本字段时,重复了一个问题。
我进行了很多搜索并尝试了许多解决方案,例如:resizeToAvoidBottomInset: true,在下面的代码中添加了 singlechildscrollview,我还尝试添加了填充:EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
什么都没有!
谁能帮我一个想法或正确的小部件树来解决这个问题?
Scaffold(
resizeToAvoidBottomInset: true,
appBar: AppBar(),
body: Padding(
padding: EdgeInsets.fromLTRB(8.w, 8.h, 8.w, 8.h),
child: SingleChildScrollView(
child: Column(
childern: [
.
.
.
Container(
padding: EdgeInsets.only(
bottom: MediaQuery.of(context)
.viewInsets
.bottom),
child: textField()
)
.
.
.
]
),
),
),
编辑:答案:
给出我的问题解决方案,以防万一有人遇到它。几个月前,我实现了一个名为 screenutilinit 的包,以使应用程序响应不同的大小,我在主页中使用的命令之一是这一行:
MaterialApp(useInheritedMediaQuery: true, ..) 当我删除它时一切正常。
我希望它可以帮助别人。
如果您添加了 singleChildScrollView,它将在键盘打开时自动向上移动。它不再需要填充。
Scaffold(
resizeToAvoidBottomInset: true,
appBar: AppBar(),
body: Padding(
padding: EdgeInsets.all(20),
child: SingleChildScrollView(
child: Column(children: [
SizedBox(
height: 500,
),
Container(child: TextField())
]),
)));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句