dart - Flutter:无法允许用户输入
问题描述
正常情况
键盘打开时
它显示溢出错误
resizeToAvoidBottomInset
包含时
TextField 隐藏在键盘下方
代码:
void main() => runApp(MaterialApp(home: HomePage()));
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
// resizeToAvoidBottomInset: false, // including this hides TextField beneath Keyboard
body: Column(
children: <Widget>[
FlutterLogo(size: 500),
TextField(decoration: InputDecoration(hintText: " Enter something here ...")),
Expanded(child: FlutterLogo(size: 300)),
],
),
);
}
}
编辑:
我想要的是TextField
当它处于焦点时应该自动向上滚动,这也意味着 FlutterLogo1 也应该向上滚动并且 FlutterLogo2 应该在键盘下方。(这在原生 Android 中是非常常见的行为,一切都为您处理)
解决方案
我认为这会奏效。
void main() => runApp(MaterialApp(home: HomePage()));
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
// resizeToAvoidBottomInset: false, // including this hides TextField beneath Keyboard
body: Stack(
children: <Widget>[
FlutterLogo(size: 500),
Column(children: <Widget>[
Container(
margin: EdgeInsets.fromLTRB(0.0, 200.0, 0.0, 0.0),
child: TextField( decoration: InputDecoration(hintText: " Enter something here ..."))),
Expanded(child: FlutterLogo(size: 300)),
],)
],
),
);
}
}
推荐阅读
- java - 如何编写一个简单的 java 程序,将像 2564.23 这样的数字显示为 20564 和 23 美分?
- ruby - 验证在选定键的哈希中找到数组的所有值
- javascript - 如何根据返回的 HTML 表单响应重定向用户?
- shell - 我无法在终端中启动 shell 脚本文件,并且该文件不读取终端。我的 shell 脚本有问题吗?我该如何解决?
- visual-studio-code - Git Bash 在 VS Code 终端中添加了一些不必要的边距
- java - 循环动画 Android
- c# - 动态编译和运行c#
- python - Python如何使用两个数组/列表运行所有可能的数学场景
- r - 我如何将所有不同的条目分类为男性、女性和非二进制
- javascript - 反应滚动到顶部不起作用?需要新的解决方案