TouchEvent(5)View的scroll行为理解
可以把Android View的屏幕scroll行为比作 用照相机拍照,
Android View比作实景,
屏幕比作镜头.
镜头里显示实景的部分景象.
scroll行为比作 移动镜头寻找实景里目标景象的动作.
镜头有自己的坐标系,它的原点是左上角[0,0] ,
实景没有坐标系,但可以由镜头坐标虚拟,镜头第一次指定的区域可以看作实景坐标的原点区域,
该区域左上为负,该区域右下为正,在view的 onLayout 里指定,可以分别指定view上的每个控件的坐标.
如:
@Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); //leftMenu+middleMenu+rightMenu就是完整的实景 middleMenu.layout(l, t, r, b);//原点区域 leftMenu.layout(l - leftMenu.getMeasuredWidth(), t, r, b);//左边区域 rightMenu.layout(//右边区域 l + middleMenu.getMeasuredWidth(), t, l + middleMenu.getMeasuredWidth() + rightMenu.getMeasuredWidth(), b); }
public void scrollTo(int x, int y) 是将镜头对准实景坐标系的x,y处,
public void scrollBy(int x, int y) 是将镜头在实景坐标系里水平移动x,竖直移动y.
public final int getScrollX() 得到当前光标在实景坐标系里的x
public final int getScrollY() 得到当前光标在实景坐标系里的y
以上函数x与y 正为右下,负为左上.

浙公网安备 33010602011771号