如何在textview中实现自动滚动的滚动条?

时间:2010-11-26 13:09:34

标签: android scroll

我使用了滚动条进行自动滚动,但即使文本结束也会继续滚动。我想找到位置并想要自动停止滚动,因此在文本滚动文本结束期间,文本会到达其初始位置。我怎么能这样做?

用于自动滚动的代码是:

public void Scroll()
{
    //text = (TextView) findViewById(R.id.TxtView);
    length = text.getLineCount();
    scroll.computeScrollOffset();
    text.setScroller(scroll);
    int a = text.getBottom();
    int b = text.getTop();
    //scroll.extendDuration(scroll.getFinalY());
    scroll.startScroll(scroll_x, scroll_y, 0, a, (500000)/ speedAmount);    
}

2 个答案:

答案 0 :(得分:1)

尼克

您需要检查源代码here

  

再次文本必须首先出现   位置

此用途scrollTo(0, 0);

  

我想找到位置

使用scroll.getCurrX();

  

想要自动停止滚动

使用scroll.abortAnimation();

&安培;你做完了!:)

编辑:

Nikki,我编写了一个派生自Android.Widget.TextView的类来自定义TextView,其中文本可以滚动直到文本结束。完成文本后返回初始位置。您需要做的就是创建定义类here&只需覆盖computeScroll (),如下所示

public void computeScroll() {
super.computeScroll();

if (null == mSlr) return;

if (mSlr.isFinished() && (!mPaused)) {
scrollTo(0, 0);//scroll to initial position or whatever position you want it to scroll 
}
}

答案 1 :(得分:0)

你的问题激励我写博客,因为几天前我遇到过类似的问题: http://b.ivity.asia/2010/12/01/extended-marquee-in-android/

我想使用非常自定义的Marquee效果,这个类应该能够为你完成这项工作。