gpt4 book ai didi

flutter - 键盘将文本字段推离屏幕

转载 作者:IT老高 更新时间:2023-10-28 12:46:10 24 4
gpt4 key购买 nike

我一直在处理 Flutter 中一个我无法弄清楚的奇怪情况。

问题在于,当我尝试在任何类型的 Scrollable Widget 中使用任何类型的 TextField 时,当我点击 TextField 以使键盘出现时,键盘会将 TextField 推离屏幕。脚手架上的一切都是空白的。

我不能确切地说出发生了什么,但有时似乎键盘将可 ScrollView 的内容推到了 View 之外,但其他时候似乎只是附有一个巨大的白框覆盖上下文的键盘顶部。我做了几个实验,但我无法确定确切的行为。

为了清楚起见,我尝试过使用 SingleChildScrollView 和 ListView。行为是一样的。

我已通读该线程的全部内容并尝试了解决方法,但均未成功: https://github.com/flutter/flutter/issues/10826

我也尝试过使用这种解决方法: https://gist.github.com/collinjackson/50172e3547e959cba77e2938f2fe5ff5

但是,我只是不确定我遇到的问题与那些线程完全相同。

这是一个演示问题的代码片段和一些屏幕截图。我只是在做一些公然错误的事情吗?

class MakeEntryView extends StatefulWidget {

@override
State<StatefulWidget> createState() => new MakeEntryState();

}

class MakeEntryState extends State<MakeEntryView> {

@override
Widget build(BuildContext context) {
return new Scaffold(
body: new SingleChildScrollView(
child: new Container(
child: new Column(
children: <Widget>[
new TextField(),
new TextField(),
new TextField(),
new TextField(),
new TextField(),
new TextField(),
new TextField(),
],
),
),
)
);
}

@override
void initState() {
super.initState();
}

@override
void dispose() {
super.dispose();
}

}

在按下文本字段之前

With Text Boxes

按下文本字段后

After Pressing Text Field

最佳答案

Scaffold 有一个适当的处理方法:

Scaffold(
resizeToAvoidBottomPadding: false,

在极少数情况下它不起作用,但应该解决它。

关于flutter - 键盘将文本字段推离屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51699793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com