键盘不会出现在应用程序 Web 视图中的 Flutter 中

问题描述 投票:0回答:1

在我的Flutter代码中,我使用flutter_inappwebview在应用程序内打开一个网页,以便用户可以输入一些数据并提交,在某些情况下我无法检测到键盘没有出现,因此用户无法输入数据, AndroidiOS 都会发生这种情况。我该怎么办?

          InAppWebView(
                    initialOptions: InAppWebViewGroupOptions(
                        crossPlatform: InAppWebViewOptions(),
                        android: AndroidInAppWebViewOptions(useHybridComposition: true),
                        ios: IOSInAppWebViewOptions(allowsInlineMediaPlayback: true)),
                    onLoadStart: (controller, url) {
                      if (url.toString() == state.paymentState.redirectBackUrl) {
                        Navigator.push(
                            context,
                            MaterialPageRoute(
                                builder: (context) =>
                                    const Scaffold(body: Center(child: Loader()), backgroundColor: Colors.white)));
                        StoreProvider.of<AppState>(navigatorKey.currentContext).dispatch(CheckPayment());
                      }
                    },
                    onLoadStop: (controller, url) async {},
                    onTitleChanged: (controller, title) {},
                    onReceivedServerTrustAuthRequest: (controller, challenge) async {
                      return ServerTrustAuthResponse(action: ServerTrustAuthResponseAction.PROCEED);
                    },
                    onWebViewCreated: (controller) async {
                      await controller.postUrl(
                          url: Uri(
                              scheme: url['scheme'],
                              host: url['host'],
                              port: int.parse(url['port']),
                              path: url['path']),
                          postData: postData);
                      controller.addJavaScriptHandler(handlerName: 'callBackUrl', callback: (args) {});
                    },
                  )
flutter keyboard flutter-inappwebview
1个回答
0
投票

我发现了问题,键盘出现在 InAppWebView 小部件后面,所以我将

InAppWebView
小部件与
Expanded
包裹在
Column
中,并在其下方添加:

SizedBox(height: MediaQuery.of(context).viewInsets.bottom / 30)

用于获取窗口底部被键盘等 UI 元素遮挡的部分的大小。 这将减少被

InAppWebView
小部件遮挡的高度。

© www.soinside.com 2019 - 2024. All rights reserved.