2015-09-06 50 views
6

我有一个WebView(在ViewPager中的SlidingTabLayout内的片段内)。AdjustResize通过点击外部键盘解散键盘后不起作用

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

当我单击WebView中的文本输入时,软键盘出现并且布局调整大小。我可以输入我的文字并使用软键盘的返回按钮提交或使用后退按钮取消输入。之后,键盘消失,布局调整回来。正确AdjustResize行为。

但是,当通过在Softkeyboard外部单击来解除键盘(例如,在Google中输入查询并按下WebView中的搜索按钮时),键盘隐藏并且大约需要2-3秒才能调整布局大小(离开在我的布局底部留出2-3秒的空白空间)。之后,当选择textinput时,键盘覆盖WebView(adjustPan)。

如何确保在按下WebView时关闭键盘,adjustResize行为得以维持。

我已经试过重新设置AdjustResize(例如,来自onTouch),但这没有影响:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

我也试过following solution但是这给没有变化。

此外,我认为这可能不是焦点问题(因为键盘确实出现,并且webview确实响应)。我也从我的查看要求重点:

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

我想创建一个新项目,复制并粘贴一些代码,并查看您在我的设备上面临的问题。你可以做一个编辑,以便这可能吗? – NecipAllef

+0

@NecipAllef我已经发布了一些文件。但是,如果您希望我可以向您发送完整的项目。电子邮件(24HR)l:[email protected] – Mdlc

+0

我已经看到了您的WebView源代码,它大约有1.2k行代码,我相信它们中的大多数甚至与您的问题没有关系。如果您可以提供一些代码,使我们能够观察问题,但也不难编译或调试,那么您可以更快地获得帮助。所以我建议你创建一个示例项目并分享它。我相信它可以通过Github。 – NecipAllef

回答

0

它竟然是,当你在web视图,或者如果的WebView布局间接地改变(执行布局转换例如调整在RelativeLayout的web视图上面的元素时导致也被调整了WeView)显示和隐藏键盘可能会导致一些奇怪的行为:

  • AdjustResize行为可能会丢失(如问题所示)
  • 的WebView调整键盘后的需要更长的时间再进行正常。
  • 的WebView性能下降

什么解决这个问题对我来说,是为了防止在WebView中以任何方式布局的变化(在旋转布局重新加载不会出现导致此)。在我的情况下,我显示并隐藏工具栏,导致WebView调整大小(并填充屏幕)。