gpt4 book ai didi

android - pageDown(true) 在 WebView Android 中总是返回 false

转载 作者:太空狗 更新时间:2023-10-29 13:36:23 25 4
gpt4 key购买 nike

我在 Android 中有一个 WebView,它存储我的应用程序的对话流。

应用程序每 20 秒轮询一次服务器以获取任何消息并更新 WebView。

每次 WebView 更新时,它都会滚动回 View 顶部。

我想阻止这种情况发生,所以我尝试使用 webView.pageDown(true);但这似乎总是返回错误。

任何帮助将不胜感激。这是代码:

    webView.loadDataWithBaseURL("fake://not/needed", html, "text/html", "utf-8", "");
boolean scrolled = webView.pageDown(true);
System.out.println("Scrolled is: " + scrolled);

最佳答案

我遇到了同样的问题,所以进一步调查,发现这些与这里有关:

我想出的唯一解决方案是创建一个处理程序,将对 webView.pageDown(true) 的调用延迟 100 毫秒,然后它就可以工作了。它可能需要更少或更多的时间,可能取决于 WebView 组件呈现给定 html 所需的时间。

这是加载和滚动的代码:

webView.loadDataWithBaseURL("fake://not/needed", html, "text/html", "utf-8", "");
mWebViewScrollHandler.removeCallbacks(mScrollWebViewTask);
mWebViewScrollHandler.postDelayed(mScrollWebViewTask, 100);

这是处理程序的代码:

private final Handler mWebViewScrollHandler = new Handler();    

private final Runnable mScrollWebViewTask = new Runnable() {
public void run() {
webView.pageDown(true);
}
};

关于android - pageDown(true) 在 WebView Android 中总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10047134/

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