Android · 2014年11月18日 0

GridView+Viewpage实现一切上下滑动

一个布局。。上面是一个自动播放的ViewPager,,下面是一个GridView。。

怎么实现ViewPager和GridView一起上下滑动,,而不是向上滑动时,,ViewPager会覆盖GridView。

重写gridview  和  ScrollView

public class MyGridView extends GridView {

public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public MyGridView(Context context) {
super(context);
}

public MyGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}

}
—————————————————————————————————–

public class MyScrollView extends ScrollView {

// 滑动距离及坐标
private float xDistance, yDistance, xLast, yLast;

public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
xDistance = yDistance = 0f;
xLast = ev.getX();
yLast = ev.getY();
break;
case MotionEvent.ACTION_MOVE:
final float curX = ev.getX();
final float curY = ev.getY();

xDistance += Math.abs(curX – xLast);
yDistance += Math.abs(curY – yLast);
xLast = curX;
yLast = curY;

if(xDistance > yDistance){
return false;
}
}

return super.onInterceptTouchEvent(ev);
}
}

Share this: