Android 单击键盘外部关闭键盘后,AdjustResize不起作用

Android 单击键盘外部关闭键盘后,AdjustResize不起作用,android,webview,keyboard,Android,Webview,Keyboard,我有一个WebView(在带有SlidingTableOut的ViewPager中的片段中) 使用WebView进行键入时,我希望调整布局的大小,以确保输入可见 当我在WebView中单击文本输入时,将显示软键盘并调整布局的大小。我可以使用软键盘的返回按钮输入文本并提交,也可以使用后退按钮取消输入。之后,键盘消失,布局重新调整大小。纠正AdjustResize行为 但是,当通过单击软键盘外部来关闭键盘时(例如,在Google中输入查询并在WebView中按下搜索按钮时),键盘会隐藏,布局调整大约

我有一个WebView(在带有SlidingTableOut的ViewPager中的片段中)

使用WebView进行键入时,我希望调整布局的大小,以确保输入可见

当我在WebView中单击文本输入时,将显示软键盘并调整布局的大小。我可以使用软键盘的返回按钮输入文本并提交,也可以使用后退按钮取消输入。之后,键盘消失,布局重新调整大小。纠正
AdjustResize
行为

但是,当通过单击软键盘外部来关闭键盘时(例如,在Google中输入查询并在WebView中按下搜索按钮时),键盘会隐藏,布局调整大约需要2-3秒(在我的布局底部留出2-3秒的空白)。之后,当选择文本输入时,键盘覆盖WebView(调整平移)

如何确保在按WebView关闭键盘时,
adjustResize
行为保持不变。

我已尝试重新设置AdjustResize(例如,从onTouch),但这没有效果:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
我也试过了,但没有改变

此外,我认为这可能不是一个焦点问题(因为键盘确实出现了,而webview也有响应)。我从我的角度问focus:

    webView.setFocusable(true);
    webView.setFocusableInTouchMode(true);

事实证明,当您在WebView上执行布局转换时,或者如果WebView的布局被间接更改(例如,当在RelativeLayout中调整WebView上方的元素的大小时,导致WebView也被调整大小),显示和隐藏键盘可能会导致一些奇怪的行为:

  • AdjustResize行为可能会丢失(如问题所示)
  • WebView在键盘后调整大小可能比正常情况下需要更长的时间
  • WebView的性能下降

对我来说,解决这个问题的方法是以任何方式防止WebView中的布局更改(旋转时重新加载布局似乎不会导致这种情况)。在我的例子中,我显示和隐藏工具栏,导致WebView调整大小(并填充屏幕)。

我想创建一个新项目,复制并粘贴一些代码,看看您在我的设备上面临的问题。你能编辑一下吗?@NecipAllef我已经发布了一些文件。不过,如果你愿意,我可以给你我的完整项目。电子邮件(24小时)l:m95YZL4xu2Sc@meltmail.comI我看过你的WebView源代码,大约有1.2k行代码,我相信它们中的大多数都与你的问题无关。如果您可以提供一些代码,使我们能够观察问题,但也不难编译或调试,那么您可以更快地获得帮助。因此,我建议您创建一个示例项目并共享它。我相信通过Github是可能的。@NecipAllef是的,我会努力的。但是我仍然需要确定问题的原因,所以创建这个项目需要一些时间。