gpt4 book ai didi

android - 通过单击外部键盘关闭键盘后 AdjustResize 不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:17 24 4
gpt4 key购买 nike

我有一个 WebView(在带有 SlidingTabLayout 的 ViewPager 中的一个 Fragment 中)。

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

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

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

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

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

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

我也试过 following solution但这没有改变。

此外,我认为这可能不是焦点问题(因为键盘确实出现,并且 webview 确实响应)。我确实从我的观点中询问焦点:

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

最佳答案

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

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

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

关于android - 通过单击外部键盘关闭键盘后 AdjustResize 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32426996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com