ListView滑动删除,左右滑动会导致上下跟着滑动,求解决办法

我根据网上搜索到的一个博客所写的一个小dome,是ListView滑动删除的,但是该博客从头到尾并没有给出对应的处理左右滑动会带动上下滑动的问题。

这是博客地址:http://blog.csdn.net/harvic880925/article/details/45155965

这是我自己写的Dome,跟博客有些不太一样:http://pan.baidu.com/s/1jINIgJ0

我试过在事件处理(TouchEvent方法)中进行判断处理,百度搜索了各种办法依旧没有解决这个问题,毕竟我是自学没多久的新人。
希望各位大神能抽空解决一下这个问题。

阅读 4.2k
2 个回答
新手上路,请多包涵

没有看你的代码,但是遇到过相同的问题,首先你需要判断手指位移来判断当前Touch事件应该被哪个组件捕获,就比如你当前的左右滑动,当前你的组件有你的listview,还有你listview里面的每一个item。这样一切都明白了,就好做了。贴个实例吧,不然也不真诚。

class YScrollDetector extends GestureDetector.SimpleOnGestureListener {
    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        
        if (Math.abs(distanceX) >= Math.abs(distanceY)) {
            //父亲不滑动
            setParentScrollAble(false);
            return true;
        }else{
            setParentScrollAble(true);
        }
        return false;
    }
}

这个用来判断左右滑动,并选择组建捕获。

private void setParentScrollAble(boolean flag) {
    if(parentListView!=null){
        parentListView.requestDisallowInterceptTouchEvent(!flag);
    }
}

这个用来分发事件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题