반응형
공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
이번 포스팅에서는 안드로이드 RecyclerView의 아이템 터치 이벤트를 줄 때 item들의 position 을 구하는
방법에 대해 알아보겠습니다.
RecyclerView 에는 ListView의 setOnItemClickListener 에 대응하는 addOnItemTouchListener 가 있습니다.
그런데 addOnItemTouchListener 에는 setOnItemClickListener 와는 다르게 int position 매개 변수가
존재하지 않기 때문에 코드로 구해주어야 합니다.
방법은 간단합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | binding.recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() { @Override public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { View child = rv.findChildViewUnder(e.getX(), e.getY()); int position = rv.getChildAdapterPosition(child); Log.d("position","["+ position +"]"); return false; } @Override public void onTouchEvent(RecyclerView rv, MotionEvent e) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } }); | cs |
onInterceptTouchEvent 함수 아래에 코드를 넣으시면 됩니다.
위 처럼 하시면 RecyclerView 의 item 들을 터치했을 때 몇 번째 position 인지 알 수 있습니다.
활용하면 터치 이벤트를 넣을 수 있겠죠??
이상입니다.
반응형
'안드로이드' 카테고리의 다른 글
안드로이드 RecyclerView.Adapter 에서 RecyclerView.ViewHolder Databinding 사용하기 (0) | 2017.10.16 |
---|---|
안드로이드 RecyclerView item 중복 터치 방지하는 방법 (0) | 2017.10.16 |
안드로이드 RecyclerView CliptoPadding = false ( Margin or padding in last Child in RecyclerView ) (2) | 2017.10.13 |
안드로이드 OnTouchListener로 LongClick 시간 조절하기 (0) | 2017.10.11 |
안드로이드 strings.xml 에서 underline, bold, text 색상 변경하는 방법 (0) | 2017.10.10 |