728x90

 1. 안드로이드 개발중 가장 많이 등장하는것은 리스트라 생각한다.

이미지 , 버튼보다 중요하고 더욱 많이등장하며 모든앱에 존재하고 리스트는 data를 담고있으므로 매우중요하다.

이 리스트를 구현하는방법은 여러가지가 있는데

기본적으로 ListView를 사용하는 방법이있다. 하지만 리스트뷰는 api level 1부터 존재했으며

listview의 재사용성이 떨어지며 메모리성능 부분에 많은 악영향을 미칠수있을수도 있기때문에

약간 상위버전? 업그레이드 버전으로 Recyclerview가 롤리팝(5.0)버전이 발표되엇다.

 

listview와 다른recyclerview의 재사용

개인적으로 위의 그림이 RecyclerView를 이해하는 데 도움이 많이 되었다.

그림을 이해하자면, ListView와는 다르게 RecyclerView는 이름에서 알 수 있듯이 재활용이 가능한 뷰이다. 무엇을 재활용 할까? 오른 쪽 그림을 보자. 파란색 라인 한 개가 채팅방 리스트 한 개라고 가정하자. 전체 채팅방 리스트는 100개가 훌쩍 넘을 수가 있다. 그러나 정작 화면에 보여지는 채팅방 목록은 한 번에 10개 조차 되지 않는다.

매번 사용자가 아래로 스크롤 할 때 마다 맨 위에 위치한 뷰 객체가 새로 삭제되고, 아랫 부분에서 새로 나타날 채팅방 뷰 객체를 새로 생성하면 결국 100개의 뷰 객체가 삭제되고 생성되는 것일 뿐만 아니라, 스크롤을 위아래로 왔다 갔다 하면 수 백개의 뷰 객체가 새로 생성되고 삭제됨을 반복한다.

리사이클러 뷰는 사용자가 아래로 스크롤 한다고 가정했을 때, 맨 위에 존재해서 이제 곧 사라질 뷰 객체를 삭제 하지않고 아랫쪽에서 새로 나타나날 파란색 뷰 위치로 객체를 이동시킨다. 즉 뷰 객체 자체를 재사용 하는 것인데, 중요한 점은 뷰 객체를 재사용 할 뿐이지 뷰 객체가 담고 있는 데이터(채팅방 이름)는 새로 갱신된다는 것이다. 어쨋거나 뷰 객체를 새로 생성하지는 않으므로 효율적인 것이다.

결과적으로 보자면, 맨 처음 화면에 보여질 10개 정도의 뷰 객체만을 만들고, 실제 데이터가 100개든 1000개든 원래 만들어 놓은 10개의 객체만 계속 해서 재사용 하는 것이다.

@참고  wooooooak.github.io/android/2019/03/28/recycler_view/

 

 

728x90

+ Recent posts