5

私はエキスパンドリストビューを持っています。私は各項目の左にスワイプでlistItemの削除を実装しています。オンフリンジとオンタッチが一緒に機能しない

私はリストビュー項目を設定するためにカスタムアダプターを使用しています。

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; 
} 

それは私が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に呼ばなっていると私は

以下
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; 
    } 

} 

ようGestureListenerを使用しています。 OnGroupClick()

私はアダプタからonTouchイベント関数からfalseを返すと、OnGroupClickは呼び出されていますがOnFling()は呼び出されません。

Flingは動作しますが、OnGroupClickは同時に動作するわけではありません。行のontouchイベントに

+0

ontouchlistner on listviewを設定して、それを動作させるかどうか –

答えて

1

row.setOnTouchListener(新OnTouchListener(){[..]

そうこれ以上のタッチイベントが後に呼び出されません、trueを返し、 falseに戻り、タッチイベントが次の子ビューに落ちる。