일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Behavior
- BOJ
- onMeasure
- notification
- lifecycle
- CollapsingToolbarLayout
- room
- recyclerview
- 안드로이드
- activity
- hilt
- DataBinding
- 알고리즘
- onLayout
- Navigation
- CoordinatorLayout
- ViewModel
- LiveData
- AppBarLayout
- Coroutine
- Algorithm
- kotlin
- 알림
- sqlite
- CustomView
- HTTP
- 코틀린
- View
- 백준
- Android
- Today
- Total
목록ItemTouchHelper (2)
개발일지
ItemTouchHelper는 RecyclerView의 제스쳐를 쉽게 도와준다. (좌우 스와이프, 위아래 이동 등) 하지만 특정 Holder에 대해서 제스쳐를 허용하고 싶지 않을 때가 있다. getSwipeDirs를 override하여 허용하지 않을 Holder에 대해 ACTION_STATE_IDLE(0)를 반환한다. override fun getSwipeDirs(recyclerView: RecyclerView, viewHolder: ViewHolder): Int { return if (condition) { ItemTouchHelper.ACTION_STATE_IDLE } else { super.getSwipeDirs(recyclerView, viewHolder) } }
ItemTouchHelper OnDragListener, GestureDetectors 등을 활요한 View에 다양한 제스처를 반응할 수 있지만 매우 복잡하다는 단점을 가지고 있다. RecyclerView에서는 쉽고 간편하게 제스처에 반응할 수 있도록 ItemTouchHelper를 제공한다. ItemTouchHelper.SimpleCallback ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP or ItemTouchHelper.DOWN, ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT) { override fun onMove(recyclerView: RecyclerView, viewHo..