未检测到键盘。MediaQuery.of(context).viewInsets.bottom始终返回0.0
我最近有这个问题。您是否将全屏设置为true?如果启用了全屏,MediaQuery.viewInsets.bottom将返回0.0。由于您提到的问题仅在android中发生,因此有可能在本机android文件中设置了全屏属性。检查styles.xml
<item name='android:windowFullscreen'>false</item>
从应用程序中删除全屏的其他方法是SystemChrome.setEnabledsystemUIOverlays([])在页面抖动中。
您可能要检查的另一件事是resizetoAvoidBottomPadding:在Scaffold中设置为false。
Flutter问题中也提出了这个问题:https ://github.com/Flutter/Flutter/issues/25050
解决方法我有一个带有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)