5

我有一個可擴展列表視圖。我正在實施刪除每個項目左側的listItem。Onfling和OnTouch不能一起工作

我正在使用自定義適配器來填充列表視圖項目。

public class InsightsListAdapter extends BaseExpandableListAdapter { 
@Override 
public View getGroupView(final int groupPosition, boolean isExpanded, 
     View convertView, ViewGroup parent) { 
    View row = convertView; 
    row = inflater_.inflate(R.layout.insight_list_item, null); 

    final GestureDetector gdt = new GestureDetector(new GestureListener()); 
    row.setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      swipedViewPosition_=groupPosition; 
      swipedView_=v; 
      gdt.onTouchEvent(event); 
      return true; 
     } 
    }); 

    return row; 
} 

我使用GestureListener像下面

private static final int SWIPE_MIN_DISTANCE = 200; 
private static final int SWIPE_THRESHOLD_VELOCITY = 200; 

private class GestureListener extends SimpleOnGestureListener { 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
     if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE) { 
      System.out.println("Left swiped--------"); 
      removeListItem(); 
      return false; // Right to left 
     } 
     return false; 
    } 

} 

由於它是一個可擴展的列表視圖我實現了一些點擊功能在acticity

 insightList_.setOnGroupClickListener(new OnGroupClickListener() { 

      @Override 
      public boolean onGroupClick(ExpandableListView parent, View v, 
        int groupPosition, long id) { 
       System.out.println("Group clicked---------"); 
       showClear(true); 
       selectedItem_ = null; 

       return false; 
      } 
     }); 

但現在OnFling獲取調用。但不OnGroupClick()

當我從適配器的onTouch事件函數返回false時,OnGroupClick被調用,但不OnFling()。

可以使用Fling或OnGroupClick,但不能同時使用。

+0

set ontouchlistner on listview and chek it working or not .. –

回答

1

該行

row.setOnTouchListener的ontouch事件(新OnTouchListener(){[..]

你返回true,所以沒有更多的觸摸事件會之後被調用,更改爲返回false,觸摸事件將下降到下一個子視圖。