HorizontalListView是可以实现横向滑动ListView,它在github上的项目地址是: https://github.com/MeetMe/Android-HorizontalListView
但笔者在使用它的时候,发现它与slidingmenu或者swipebacklayout产生滑动冲突,很不幸,它的源码里没有去做滑动冲突解决的方法。
在这里,解决它的滑动冲突非常简单,笔者在它原有的类里去增一个方法,就搞定了:
private int mLastX;
private int mLastY;
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
int x = (int) ev.getX();
int y = (int) ev.getY();
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_MOVE:
int xDiff = Math.abs(x - mLastX);
int yDiff = Math.abs(y - mLastY);
if (xDiff < yDiff) {
getParent().requestDisallowInterceptTouchEvent(false);
} else {
getParent().requestDisallowInterceptTouchEvent(true);
}
break;
}
mLastX = x;
mLastY = y;
return super.dispatchTouchEvent(ev);
}
哈哈哈