RecyclerView swipe to show button 구현 중 UI가 초기화 되지 않는 현상 | 삽질 노트

hoya·2022년 2월 11일
0

삽질 노트

목록 보기
5/8
post-thumbnail

😡 문제 상황

RecyclerView에서 ItemTouchHelper 클래스를 이용해 스와이프 후 버튼 클릭 UI를 구현하던 중, 하나의 리스트를 스와이프하면 다른 리스트도 함께 스와이프 되는 오류가 발생하였다.


🤔 원인 파악

  1. 0번째 리스트를 왼쪽으로 스와이프한다.
  2. 이 0번째 리스트가 재활용되어 10번째 리스트가 된다.
  3. 이 과정에서 View가 스와이프 된 것까지 재활용하며 10번째 리스트도 함께 왼쪽으로 스와이프 된다.

굉장히 간단한 이유이지만, 개념을 제대로 알지 못해 며칠을 계속 고민했던 문제이다.


😎 해결

	// In RecyclerView Adapter !!
    override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
        holder.container.translationX = 0f
    }

리스트가 바인딩 될 때 부모 레이아웃의 x를 0f로 설정해주면 위와 같은 오류가 해결된다.


참고 및 출처

리사이클러뷰, 제대로 알고 쓰자
Recyclerview drag and drop/swipe 기능 만들기

profile
즐겁게 하자 🤭

0개의 댓글