Android 慢慢向上滚动滚动视图

Android 慢慢向上滚动滚动视图,android,scroll,scrollview,Android,Scroll,Scrollview,问题是“如何才能非常平稳、缓慢地将ScrollView向上滚动到顶部” 在我的特殊情况下,我需要在大约1-2秒内滚动到顶部。 我曾尝试使用处理程序(调用scrollTo(0,y))手动插值,但根本不起作用 我已经在一些bookreader应用程序上看到了这种效果,所以一定有办法,我确信:D。 (文本非常缓慢地向上滚动,以便在不触摸屏幕、进行输入的情况下继续阅读)。您是否尝试过平滑滚动(int x,int y)? 您无法设置速度参数,但此功能可能适合您您可以使用Timer和TimerTask类。你

问题是“如何才能非常平稳、缓慢地将ScrollView向上滚动到顶部”

在我的特殊情况下,我需要在大约1-2秒内滚动到顶部。 我曾尝试使用处理程序(调用scrollTo(0,y))手动插值,但根本不起作用

我已经在一些bookreader应用程序上看到了这种效果,所以一定有办法,我确信:D。
(文本非常缓慢地向上滚动,以便在不触摸屏幕、进行输入的情况下继续阅读)。

您是否尝试过
平滑滚动(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抱歉,如果有点晚了,您可以放置要滚动的组件的宽度或高度,而不是零