2

我正在使用 Android 中的 webviews 并陷入了为 scrollTo 方法制作动画的想法。基本上,方法 scrollTo(x,y) 将页面滚动到给定点,但它会立即执行。

我希望它慢一点,就像动画过渡一样。有谁知道该怎么做?

编辑 1:我刚刚尝试使用基于 xml 和代码的翻译动画。它似乎移动了 webview,但只是作为一个“整体”视图,所以它向下滚动,但不是 webview 的滚动条,而是 webview 的整个视口(这有意义吗?)所以我可以有效地看到我当前的页面滑动向下滑动黑屏(从顶部到底部)。这有点道理,因为我正在翻译整个 web 视图(将其向下移动......)。我尝试分别设置 Animation.ABSOLUTE、Animation.RELATIVE_TO_PARENT 和 Animation.RELATIVE_TO_SELF,但没有成功。

然后,如何直接在 webview 中而不是在整个视图中为滚动位置设置动画?

编辑 2:经过多次尝试,我更了解动画的工作原理。因此,我声称不可能覆盖默认的“即时”滚动行为。如果有人对此有不同的看法或知识,请告诉我。

4

2 回答 2

11

使用 ObjectAnimators。此代码平滑地将 WebView 滚动到顶部:

ObjectAnimator anim = ObjectAnimator.ofInt(mWebView, "scrollY",
    mWebView.getScrollPositionY(), 0);
anim.setDuration(400);
anim.start();
于 2013-08-19T10:53:37.860 回答
0

我认为您需要首先将动画设置为网络视图,如果您想立即使用它,那么您需要说开始动画。使用 xml 定义动画。

我已经看到与此问题相关的答案,请查看此链接

于 2012-08-10T07:50:40.917 回答