Android 慢慢向上滚动滚动视图
问题是“如何才能非常平稳、缓慢地将ScrollView向上滚动到顶部” 在我的特殊情况下,我需要在大约1-2秒内滚动到顶部。 我曾尝试使用处理程序(调用scrollTo(0,y))手动插值,但根本不起作用 我已经在一些bookreader应用程序上看到了这种效果,所以一定有办法,我确信:D。Android 慢慢向上滚动滚动视图,android,scroll,scrollview,Android,Scroll,Scrollview,问题是“如何才能非常平稳、缓慢地将ScrollView向上滚动到顶部” 在我的特殊情况下,我需要在大约1-2秒内滚动到顶部。 我曾尝试使用处理程序(调用scrollTo(0,y))手动插值,但根本不起作用 我已经在一些bookreader应用程序上看到了这种效果,所以一定有办法,我确信:D。 (文本非常缓慢地向上滚动,以便在不触摸屏幕、进行输入的情况下继续阅读)。您是否尝试过平滑滚动(int x,int y)? 您无法设置速度参数,但此功能可能适合您您可以使用Timer和TimerTask类。你
(文本非常缓慢地向上滚动,以便在不触摸屏幕、进行输入的情况下继续阅读)。您是否尝试过
平滑滚动(int x,int y)
?
您无法设置速度参数,但此功能可能适合您您可以使用Timer和TimerTask类。你可以这样做
scrollTimer = new Timer();
scrollerSchedule = new TimerTask(){
@Override
public void run(){
runOnUiThread(SCROLL TO CODE GOES HERE);
}
};
scrollTimer.schedule(scrollerSchedule, 30, 30);
在2秒钟内将滚动视图移动到2000位置
new CountDownTimer(2000, 20) {
public void onTick(long millisUntilFinished) {
scrollView.scrollTo(0, (int) (2000 - millisUntilFinished)); // from zero to 2000
}
public void onFinish() {
}
}.start();
我使用object animator(在API>=3中提供)完成了此操作,它看起来非常好: 定义ObjectAnimator:
final ObjectAnimator animScrollToTop=ObjectAnimator.ofInt(这个“scrollY”,0)代码>
(此
指扩展Android的滚动视图的类
)
您可以根据需要设置其持续时间:
animScrollToTop.setDuration(2000)代码>(2秒)
注意:不要忘记启动动画。请尝试以下代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
ValueAnimator realSmoothScrollAnimation =
ValueAnimator.ofInt(parentScrollView.getScrollY(), targetScrollY);
realSmoothScrollAnimation.setDuration(500);
realSmoothScrollAnimation.addUpdateListener(new AnimatorUpdateListener()
{
@Override
public void onAnimationUpdate(ValueAnimator animation)
{
int scrollTo = (Integer) animation.getAnimatedValue();
parentScrollView.scrollTo(0, scrollTo);
}
});
realSmoothScrollAnimation.start();
}
else
{
parentScrollView.smoothScrollTo(0, targetScrollY);
}
嘿,我不知道倒计时,因此仅此一项就可以赢得“谢谢”:。最后,用一个倒计时器解决了这个问题,但修改了代码。滚动由scrollBy而不是scrollTo完成,可以轻松指定“滚动速度”。此外,我还添加了一个功能,只需向上滚动到顶部,然后我们就完成了。(不要从底部等其他地方开始,如果我们已经在顶部,则仍然向上滚动)。是的,这是使用scrollBy的一个好方法,更容易调整移动。也许你应该发布你的解决方案,因为人们经常问这个问题;)嗨,卢米斯,我也面临同样的问题。。请你看看我的名片好吗。。thanks@Michael我也面临同样的问题。。请看我的please..thankshow从特定视图滚动到视图底部它很平滑,与我当前尝试的操作有不同的问题,但这绝对可以实现平滑滚动。0是要滚动到的参数to@Arlind抱歉,如果有点晚了,您可以放置要滚动的组件的宽度或高度,而不是零