【问题标题】:adjust_pan behavior in Webview in fullscreen全屏 Webview 中的 adjust_pan 行为
【发布时间】:2023-04-01 16:44:01
【问题描述】:

我正在尝试解决在我的 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) 但这并没有解决问题。

我需要将活动设置为全屏,因为我想同时隐藏标题栏和状态栏,因此除非有其他隐藏状态栏的方法,否则无法删除它。

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

劳伦特

【问题讨论】:

    标签: android


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      对我来说这很有效:

      getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
      

      【讨论】:

      • 虽然这个答案可能是正确且有用的,但最好在其中附上一些解释来解释它如何帮助解决问题。如果有更改(可能不相关)导致它停止工作并且用户需要了解它曾经是如何工作的,这在未来变得特别有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多