ScrollView的常用方法
(大多重写自View,HorizontalScrollView也一样)
public final int getScrollX()
返回值表示当前滚动到内容的哪个位置
public void scrollTo(int x, int y)
滚动到内容的x或y位置,一步到位,没有滚动动画,滚动动画需要利用Scroller定义
public void scrollBy(int x, int y)
往内容的正或负方向滚动x或y距离
fling过程中屏蔽了scrollTo()和scrollBy()
如果scrollTo()或scrollBy()超出内容的边界,则止于边界(默认)。
public final void smoothScrollTo(int x, int y)
平滑滚动到内容的x或y位置
当直接调用smoothScrollTo()没有效果时,试试这种方法:
View#post(new Runnable() {
@Override
public void run() {
smoothScrollTo(x, y);
}
});
Scroller的常用方法
public void startScroll(int startX, int startY, int dx, int dy, int duration)
开始一个动画控制,由(startX , startY)在duration时间内前进(dx,dy)个单位,即到达偏移坐标为(startX+dx , startY+dy)处
public boolean computeScrollOffset()
滑动过程中,根据当前已经消逝的时间计算当前偏移的坐标点,保存在mCurrX和mCurrY值中
public final int getCurrX()
返回mCurrX
自定义ScrollView
import android.content.Context;
import android.os.Looper;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.HorizontalScrollView;
import android.widget.OverScroller;
public class MyScrollView extends HorizontalScrollView {
private