【问题标题】:+Android Webview - how to autoscroll a page?+Android Webview - 如何自动滚动页面?
【发布时间】:2011-02-21 18:30:35
【问题描述】:

我想在 webview 中打开一个 html 页面,让它按照定时器设置的时间间隔自动向下滚动。

虽然下面的示例适用于桌面,但此链接应该让您了解我想要实现的目标(在页面的右上角启用自动滚动):

example

首先我想打开一个网页,然后使用某种代码来模拟/触发 DPAD-down(或 Arrow-down)。在 Windows Mobile 中,我相信有一个叫做 SendKeys 的东西,但我在 Android-SDK 中找不到类似的东西(除了我怀疑我可以用来在 AndroidMarket 中发布我的应用程序的测试 SDK)所以我猜提到的方式以上是不可能的。

另一种解决方案可能是 java 脚本,但网页不是我创建的,所以我无法插入任何锚。

但是,我注意到 Webview 有一些称为 PageDown(和 PageUp)的方法,这也可能是一种解决方案,但我担心 PageDown 对于按我想要的方式滚动来说太多了。我希望滚动缓慢而流畅,更像是一次一行。

您有什么想法可以实现吗?我真的很感谢你的帮助。

【问题讨论】:

    标签: java android webview scroll


    【解决方案1】:

    您可以尝试使用, View.scrollBy(int x, int y) 滚动 WebView

    使用:
    computeVerticalScrollOffset(),
    computeVerticalScrollExtent()
    computeVerticalScrollRange() 计算最大 y 值。

    【讨论】:

    • 我查看了android-documentation,参数是像素。我必须承认我不是公式专家。你将如何实施它?你介意在代码中显示这个吗?
    • 这是一个向下滚动一行左右的代码块: // 获取这些一次,它们可能不会改变 int scrollExtent = this.computeVerticalScrollExtent(); int scrollRange = this.computeVerticalScrollRange();诠释 dx = 12; // 或者这里计算行高 // 每次获取这个,都会改变 int scrollOffset = this.computeVerticalScrollOffset(); if (scrollOffset + dy > scrollRange - scrollExtent) { dy = (scrollRange - scrollExtent - scrollOffset); } webview.scrollBy(0,dy);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多