一尘不染

未检测到键盘。MediaQuery.of(context).viewInsets.bottom始终返回0.0

flutter

我有一个带有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)

阅读 504

收藏
2020-08-13

共1个答案

一尘不染

我最近有这个问题。您是否将全屏设置为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

2020-08-13