我有一个可扩展的列表视图.我正在每个项目的向左滑动上实现listItem的删除.
我使用自定义适配器来填充listview项目.
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; } }
由于它是一个可扩展的Listview,我在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,但不能同时工作.