【发布时间】:2020-04-09 16:10:48
【问题描述】:
Android 上的 Flutter Webview 插件似乎存在一个长期存在的问题 - 如果 this discussion 可以通过。我也遇到过 - 在 Webview 对话框中,我有一个输入框,当聚焦时会导致 Android 软键盘出现。但是,当该输入框失去焦点时,它不会随后自行消失 - 甚至当它从 DOM 树中删除时也是如此。对于任何能够提出解决方案的人,我将非常感激。我已经尝试了该讨论中提到的各种想法,包括从后面的 Dart 代码发出 SystemChannels.textInput.invokeMethod('TextInput.hide');。
我能想到的唯一另一种方法是编写一个小的 Flutter Android“插件”,它试图通过我认为应该可以工作的 Android API 直接隐藏软键盘。如果有人能指出我执行此操作所需的 Kotlin 代码,我将不胜感激。
这是我构建应用程序 UI 的方式 - 整个 Widget 树
Route makeWebView(RouteSettings settings)
{
return new PageRouteBuilder
(
pageBuilder:(BuildContext context,Animation<double>
animation,Animation<double> secondaryAnimation)
{
return SafeArea
(
child:Listener
(
child: SizedBox.expand
(
child:WebView
(
debuggingEnabled:true,
initialUrl:'',
javascriptMode:JavascriptMode.unrestricted,
onWebViewCreated:registerController,
javascriptChannels:Set.from
([JavascriptChannel(name:'JSBridge',
onMessageReceived:handleMessage)]),
),
),
)
);
});
}
【问题讨论】:
-
请分享您的小部件树,您将 WebView 添加到小部件树的位置和方式...
-
我已经修改了我的问题。我应该提一下,我从 WidgetsApp 开始,而不是 MaterialApp
标签: android flutter android-softkeyboard blur