我有一个支架,里面有一个 TextField。当键盘之前将该字段移动到键盘上方时,键盘始终会覆盖该字段。我项目中的所有页面都发生这种情况。
我已将 MediaQuery.of(context).viewInsets.bottom 添加到我的构建方法中,它始终返回 0.0。当键盘出现时,没有重建。我尝试将 resizeToAvoidBottomInset 设置为 true 和 false,没有任何更改。我尝试将其包装在可滚动小部件中,没有任何变化。
在 IOS 中一切正常,这只影响 Android 构建。
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v1.10.15, on Mac OS X 10.15.1 19B88, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.2.1)
[✓] Android Studio
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.40.2)
[✓] Connected device (1 available)
最佳答案
我最近遇到了这个问题。您是否将全屏设置为true?如果启用全屏,MediaQuery.viewInsets.bottom 将返回 0.0。由于您提到该问题仅发生在 android 中,因此您可能在 native android 文件中设置了全屏属性。检查styles.xml
<item name="android:windowFullscreen">false</item>
从应用程序中删除全屏的其他方法是 flutter 页面中的 SystemChrome.setEnabledSystemUIOverlays([])
。
您可能需要检查的另一件事是 Scaffold 中的 resizeToAvoidBottomPadding:
为 false。
该问题也在 Flutter issues 中提出:https://github.com/flutter/flutter/issues/25050
关于android - 未检测到键盘。 MediaQuery.of(context).viewInsets.bottom 始终返回 0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59197602/