2

我正在尝试解决在我的 Webview 中,当用户选择一个文本字段时,出现的键盘会覆盖下面的文本字段的问题。相反,我需要一种将文本字段移动到键盘正上方的行为,就像标志 SOFT_INPUT_ADJUST_PAN 会做的那样。

根据测试,默认情况下,Webview 似乎在字段下方显示键盘。但是我的 WebView 是全屏的。我在我的活动中调用 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)); 这似乎使 android 停止执行默认的“平移和扫描”行为。

我试图调用 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) 甚至 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) 但这并没有解决它。

我需要将活动设置为全屏,因为我想隐藏标题栏和状态栏,因此除非有另一种隐藏状态栏的方法,否则删除它不是一个选项。

关于如何解决这个问题的任何想法?

洛朗

4

2 回答 2

0

您需要删除 FLAG_FULLSCREEN 标志。操作系统机器中的某个地方存在一个错误,经过一些挖掘,我发现了以下内容:

  • 在 web 视图周围没有任何额外的滚动视图,adjustPan 从来没有为我工作过。不幸的是,添加滚动视图也并不总是有帮助。
  • 当 webview 所在的活动不存在 FLAG_FULLSCREEN 时,adjustScroll 对我有用。

所以总结一下,当涉及到 WebView 时,最安全的选择是 adjustResize 而不是全屏活动。

于 2013-04-09T11:44:34.643 回答
0

对我来说,这很有效:

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
于 2015-07-05T16:01:14.247 回答