巴扎黑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);
}
}
這個用來分發事件
PHP中文网2017-04-17 17:02:15
如果還沒解決的話你可以嘗試的看下這個開源範例:https://github.com/timroes/EnhancedListView支援你說的側滑刪除