Ich habe eine erweiterbare Listview. Ich implementiere eine Löschung des listItem auf Swipe Left von jedem Gegenstand.Onfling und OnTouch funktioniert nicht zusammen
Ich benutze benutzerdefinierte Adapter zum Bestücken von Listview-Elementen.
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;
}
Ich verwende GestureListener wie unten
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;
}
}
Da es sich um eine erweiterbare Listview ist ich einige Klick-Funktionalitäten in der 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;
}
});
Aber jetzt auf OnFling umgesetzt wird immer genannt. aber nicht OnGroupClick()
Wenn ich false von onTouch Ereignisfunktion vom Adapter zurückgibt, wird OnGroupClick zwar angerufen, aber nicht OnFling().
Entweder funktioniert Fling oder OnGroupClick, aber nicht beide gleichzeitig.
ontouchlistner auf Listenansicht setzen und chek es funktioniert oder nicht .. –