일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- onMeasure
- CoordinatorLayout
- ViewModel
- HTTP
- Coroutine
- Behavior
- 안드로이드
- AppBarLayout
- CollapsingToolbarLayout
- lifecycle
- View
- activity
- kotlin
- Navigation
- 백준
- sqlite
- Algorithm
- DataBinding
- BOJ
- CustomView
- Android
- onLayout
- recyclerview
- room
- 코틀린
- 알고리즘
- 알림
- notification
- LiveData
- hilt
- Today
- Total
목록Drag (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) } }
OnTouchListener OnTouchListener는 터치가 발생했을 때 이벤트를 수신한다. 터치가 발생했을 때 MotionEvent가 발생하고 MotionEvent를 통해 터치한 손가락의 수, 각 터치별 위치, 손가락이 터치할 때, 손가락을 뗐을 때 등의 이벤트를 수신할 수 있다. 이러한 이벤트를 바탕으로 View를 드래그, 축소/확대, 회전등을 할 수 있다. Action MotionEvent의 action에는 비트 마스크 형식으로 Action, Touch Index 등 여러 정보를 저장하고 있다. action과 MotionEvent.ACTION_MASK를 통해 터치의 ACTION을 구할 수 있고, actionMasked를 통해 바로 ACTION을 구할 수 있다. ACTION_DOWN : 처음으로..