我想从上到下自动向下滚动加载在 WebView 中的页面,给定每一定数量的 ms 一定数量的像素。我看过这个帖子:+Android Webview - 如何自动滚动页面?但是在许多其他线程上,他们说为此使用 Timer 是一个坏主意,因此我将本教程用于处理程序:创建我的处理程序。现在我的代码如下所示:
private Handler mHandler=new Handler();
private Runnable mScrollDown = new Runnable()
{
public void run()
{
WebView webview = (WebView)findViewById(R.id.web_url);
webview.scrollBy(0, scrollSpeed);
mHandler.postAtTime(this, 200);
}
};
如果我只调用一次,(删除再次调用它的最后一行)它会起作用,它会下降然后停止。但是,如果我尝试使用此代码使其逐渐向下滚动,则视图似乎不会失效(或者它会失效但未重绘)。使用调试器,我可以看到 WebView 的 mScrollY 属性增加了,但视图没有移动。
我的猜测是系统正在等待视图的所有更改以重绘它。有没有办法在每次迭代时更新视图,或者有更好的方法来做到这一点?
注意:我没有在其中放置页面结束检查和停止按钮,因为它们与问题无关。