View.scrollBy()与View.scrollTo()的使用
scrollTo()和scrollBy()都是View的public成员函数,使用这两个函数可以达到同样的目的,只是使用方式不同。
public void scrollBy (int x, int y),将View的Content偏移(x,y)。x控制左右方向的偏移,y控制上下方向的偏移。例如当x>0,y=0时,向右移动x像素,当x<0,y=0时,向左移动x像素,而View的大小和位置不发生改变。如果Content超出了View的范围,则超出的部分会被挡住。
public void scrollTo (int x, int y),将View的Content的位置移动到(x,y),而View的大小和位置不发生改变。如果Content超出了View的范围,则超出的部分会被挡住。
举个例子说明情况,这个例子有两个控件可以Scroll,一个是TextView,一个是ListView,另外用两个Button控制scroll的方向(向上或向下)
main.xml
实验的结果是:调用scrollTo()和scrollBy()可以到达预想的效果,但是因为用手指在ListView上拖动时,ListView也会滚动,貌似和scrollTo()/scrollBy()冲突,在android2.2和4.0上都有问题。所以最好不要在ListView上调用这两个函数,以免出现莫名奇妙的问题。同样也不能通过getScrollY()获取ListView滚动的位置。