본문 바로가기

나의 플랫폼/안드로이드

[Android] Tmp detached view should be removed from RecyclerView before it can be recycled

혹시 아래와 같은 에러 보신 분들은 참고 하세요.


Tmp detached view should be removed from RecyclerView before it can be recycled


이건 RecyclerView가 삭제나 추가등 수정이 이뤄지고 있는 동안에 이벤트 적으로 다른 동작이 이뤄질 때 발생한 에러 입니다.


즉, RecyclerView에 있는 이미지를 클릭하면 확대하는 기능이 있습니다. 

이미지를 클릭 하는 동시에 RecyclerView에 새로운 데이터가 추가 되는 현상이 발생 한 것이죠.

이미지 확대 애니메이션이 동작 중인데 RecyclerView 해당 리스트가 변경이 되는 것이죠.


아~ 그럼 애니메이션 동작 할 때마다 RecyclerView를 체크 해야 하는 건가?

그럴 필요 없습니다.

애니메이션을 주고자 하는 View에 post를 던지면 해결이 됩니다.


mView.post(new Runnable() {
@Override
public void run() {
// 애니메이션 동작 이나 특정 기능 동작
}
});


이렇게 호출을 하면 mView의 UI Thread 상태에서 동작이 이뤄지기 때문에 

다른 View와는 별도로 돌아가게 됩니다.

따라서 애니메이션 동작이 문제 없이 이뤄지게 됩니다.


참고하시면 좋을 듯 합니다.