完美解决ScrollView嵌套SwipeMenuListView

来源:互联网 发布:极限挑战私下关系知乎 编辑:程序博客网 时间:2024/05/15 23:51

当ScrollView嵌套SwipeMenuListView时候,SwipeMenuListView侧滑会出现冲突。

private ScrollView scrollview;
private com.baoyz.swipemenulistview.SwipeMenuListView swipeMenuListView;
//设置监听
scrollview.setOnTouchListener(XX);
swipeMenuListView.setOnTouchListener(XX);
private int localWigth = 0;private int localHeigth = 0;private boolean Scroll = false;private boolean canScroll = false;
private View.OnTouchListener XX = new View.OnTouchListener(){
@Overridepublic boolean onTouch(View v, MotionEvent motionEvent) {
//这个ID是scrollview的id
    if(v.getId() == R.id.scroll)        return canScroll;    switch(motionEvent.getAction()){        case MotionEvent.ACTION_DOWN:            localWigth = (int)motionEvent.getX();            localHeigth = (int)motionEvent.getY();            break;        case MotionEvent.ACTION_MOVE:            if(!Scroll) {                int sx = Math.abs((int) motionEvent.getX() - localWigth);                int sy = Math.abs((int) motionEvent.getY() - localHeigth);                if(sy < sx) {                    canScroll = true;                    scrollview.requestDisallowInterceptTouchEvent(true);                    Scroll = true;                }            }            break;        case MotionEvent.ACTION_UP:
        case MotionEvent.ACTION_CANCEL:
canScroll = false; scrollview.requestDisallowInterceptTouchEvent(false); Scroll = false; break; } return false;}
};

阅读全文
1 0