我有一个带有TextField的脚手架。以前,键盘会将字段移到键盘上方时,它始终会覆盖该字段。这发生在我项目的所有页面上。
我已经将MediaQuery.of(context).viewInsets.bottom添加到我的构建方法中,并且它始终返回0.0。键盘抬起时,不会重建。我尝试将resizeToAvoidBottomInset设置为true和false,而没有进行任何更改。我尝试将其包装在Scrollable小部件中,没有任何变化。
在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中发生,因此有可能在本机android文件中设置了全屏属性。检查styles.xml
<item name="android:windowFullscreen">false</item>
从应用程序中删除全屏的其他方法是SystemChrome.setEnabledSystemUIOverlays([])在页面抖动中。
SystemChrome.setEnabledSystemUIOverlays([])
您可能要检查的另一件事是resizeToAvoidBottomPadding:在Scaffold中设置为false。
resizeToAvoidBottomPadding:
Flutter问题中也提出了这个问题:https : //github.com/flutter/flutter/issues/25050