我尝试将Webview嵌入到Flutter应用程序中。在添加示例代码后,页面正常加载,但当我点击页面上的输入框时,没有弹出软键盘。
我尝试将Webview嵌入到Flutter应用程序中。在添加示例代码后,页面正常加载,但当我点击页面上的输入框时,没有弹出软键盘。
我知道现在有点晚了,但是将 webview 版本更改为 v3.0.0 对我来说实际上解决了这个问题。
我尝试了很多方法,但最终通过脚手架解决了问题,现在我的键盘可以打开了。
将您的WebView放入Scaffold小部件中,并在Scaffold小部件中应用以下属性。
resizeToAvoidBottomInset: false,
将此添加到initState()中,问题便得到解决。
我只在Android设备上遇到了这个问题。
void initState() {
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
super.initState();
}
目前可以使用这个。希望Flutter团队尽快修复。
您需要在Android Studio中打开您的安卓项目,以查看所有依赖项并在webview_flutter
中使用。
要修复最新版本的代码,除了导入外
import android.app.Activity;
import io.flutter.app.FlutterApplication;
更改:
webView = new InputAwareWebView(context, containerView);
至:
Context activityContext = context;
Context appContext = context.getApplicationContext();
if (appContext instanceof FlutterApplication) {
Activity currentActivity = ((FlutterApplication) appContext).getCurrentActivity();
if (currentActivity != null) {
activityContext = currentActivity;
}
}
webView = new InputAwareWebView(activityContext, containerView);
原始答案在这里:@ryanhz https://github.com/flutter/flutter/issues/25767#issuecomment-588603862