【问题标题】:webview loaddata scroll setting not updating till clickedwebview loaddata滚动设置在点击之前不会更新
【发布时间】:2011-04-26 14:39:02
【问题描述】:

我使用 loadData() 和 reload() 更新 webView 中的 html。我得到要显示的新数据,但页面的滚动没有更新。我想将页面视图保持在底部。我可以等很长时间,它仍然没有更新。单击 webView 后,滚动条会调整,我可以拖动到页面底部并查看新文本。

我尝试过的事情: - onPageFinished() 中的多个设置和调用。没有工作,因为 getContentHeight() 还没有改变。我也尝试过 scrollTo(100 + getContentHeight) 但这不起作用。 - pageDown(true)

  • reload() 后调用 requestLayout()

  • browser.requestFocusFromTouch() - 还是不行,我想我可以模拟我的点击。

  • 添加几个 br 标签。这有点用,但是 br 的数量必须等于新文本的行数。由于新行的数量不是可以根据方向和屏幕变量精确确定的,因此它不是一个好的解决方法。 有任何想法吗? TIA

【问题讨论】:

    标签: android uiwebview


    【解决方案1】:

    如果你想让 webview 在加载完成后滚动到底部,我发现我必须在 onNewPicture 中使用 pageDown(true)。 (我相信这是在视图完成绘制时触发的事件。)

    所以代码看起来像

       webView.setPictureListener( new WebView.PictureListener() {
    
            public void onNewPicture(WebView view, Picture picture) {
                webView.pageDown(true);
            }
        }
    

    使用 pageDown 会出现页面明显滚动的不幸问题;我在寻找任何其他方式跳转到 webView 底部时遇到问题,在寻找解决方案时发现了这个问题! (不过,我还没有尝试进入 WebView 并使用 javascript。)

    【讨论】:

    • 我一定有另一个小故障。我在 pageDown 期间看到页面闪烁(是的!以前从未有过),但它会转到页面的原始末尾。 contentHeight 没有得到更新,所以它会出现在页面的假结尾。嘘!
    • 我将此标记为已回答,因为 pageDown(true) 正在为我触发。我问了另一个关于如何让 contentHeight 重新计算的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多