首頁  >  問答  >  主體

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

黄舟黄舟2761 天前746

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 17:02:15

    沒有看你的程式碼,但是遇到過相同的問題,首先你需要判斷手指位移來判斷當前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);
        }
    }

    這個用來分發事件

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 17:02:15

    如果還沒解決的​​話你可以嘗試的看下這個開源範例:https://github.com/timroes/EnhancedListView支援你說的側滑刪除

    回覆
    0
  • 取消回覆