一直对View的滚动了解的不深,说明白了吧也能说出个所以然来,所以我就花了点时间做了一个小小的总结,言归正传,view的滑动分为以下三种:
1)View本身不滚动,指滚动View的内容,这也是View类提供的原始方法,通过scrollTo和ScrollBy方法来实现。
2)使用动画,让View来产生滚动效果
3)通过动态的修改LayoutParams的margin等属性让View来产生滚动
本篇博客就简单的分析一下第一种情况,同时本文最后还会简单的提供了一个例子:
View本身就提供了scrollBy和scrollTo方法,其中scrollBy方法又是调用了scrollTo方法:
public void scrollTo(int x, int y) {
if (mScrollX != x || mScrollY != y) {
int oldX = mScrollX;
int oldY = mScrollY;
//记录滚动的位置
mScrollX = x;
mScrollY = y;
invalidateParentCaches();
onScrollChanged(mScrollX, mScrollY, oldX, oldY);
if (!awakenScrollBars()) {
postInvalidateOnAnimation();
}
}
}
public void scrollBy(int x, int y)