Skip to content

Commit e65acbd

Browse files
author
Raúl Pedro Fernandes Santos
committed
Add longPress support.
1 parent d21a923 commit e65acbd

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

HorizontalListView.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public class HorizontalListView extends AdapterView<ListAdapter> {
5757
private Queue<View> mRemovedViewQueue = new LinkedList<View>();
5858
private OnItemSelectedListener mOnItemSelected;
5959
private OnItemClickListener mOnItemClicked;
60+
private OnItemLongClickListener mOnItemLongClicked;
6061
private boolean mDataChanged = false;
6162

6263

@@ -86,6 +87,11 @@ public void setOnItemClickListener(AdapterView.OnItemClickListener listener){
8687
mOnItemClicked = listener;
8788
}
8889

90+
@Override
91+
public void setOnItemLongClickListener(AdapterView.OnItemLongClickListener listener) {
92+
mOnItemLongClicked = listener;
93+
}
94+
8995
private DataSetObserver mDataObserver = new DataSetObserver() {
9096

9197
@Override
@@ -353,8 +359,27 @@ public boolean onSingleTapConfirmed(MotionEvent e) {
353359
return true;
354360
}
355361

356-
357-
362+
@Override
363+
public void onLongPress(MotionEvent e) {
364+
Rect viewRect = new Rect();
365+
int childCount = getChildCount();
366+
for (int i = 0; i < childCount; i++) {
367+
View child = getChildAt(i);
368+
int left = child.getLeft();
369+
int right = child.getRight();
370+
int top = child.getTop();
371+
int bottom = child.getBottom();
372+
viewRect.set(left, top, right, bottom);
373+
if (viewRect.contains((int) e.getX(), (int) e.getY())) {
374+
if (mOnItemLongClicked != null) {
375+
mOnItemLongClicked.onItemLongClick(HorizontalListView.this, child, mLeftViewIndex + 1 + i, mAdapter.getItemId(mLeftViewIndex + 1 + i));
376+
}
377+
break;
378+
}
379+
380+
}
381+
}
382+
358383
};
359384

360385

0 commit comments

Comments
 (0)