ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android/Java] 리싸이클러뷰(RecyclerView)
    Android/Java 2022. 5. 17. 15:12
    반응형

    [모든 포스팅은 개인적 공부를 위해 작성된 글입니다]

     

    <ListView와 비교 했을 때 RecyclerView의 장점>

    - ListView는 세로 방향으로만 스크롤 내릴 수 있지만 RecyclerView는 가로 방향으로도 할 수 있음

     - 이유 : LayoutManager를 우리가 관리할 수 있기 때문

      - LayoutManager의 종류

       1. Linear(수평, 수직, 일렬)

       2. Gride(바둑판 모양의 격자)

       3. StaggeredGrid(모양이 일정하지 않음)

    - 성능상 큰 차이는 없지만 ListView 보다는 RecyclerView의 성능이 더 좋음

    - ListView에 비해 유연성 높음

     - ListView는 애니메이션 사용이 어렵고 다양한 아이템뷰가 필요하면 복잡한 커스텀 작업이 필요

     - 아이템뷰 생성할 때 마다 inflate와 findViewById가 반복되어 리소스 비용 증가

     

    <어댑터(Adapter)>

    - 데이터 관리 기능 담당

     

    <뷰홀더(ViewHolder)>

    - 각각의 아이템을 위한 뷰 저장

    - 뷰홀더 역할을 하는 클래스를 Adapter 클래스 안에 넣어둔다고 생각하면 됨

    - ListView와 RecyclerView는 inflate 최소화를 위해 각 뷰를 재활용 함

     - 이 때 매번 findViewById 호출로 인해 성능 저하가 일어나는 것을 방지하기 아이템뷰의 요소에 바로 접근할 수 있도록 저장해두고 사용하기 위한 객체

     

    <어댑터에 반드시 구현되어야 하는 메서드 3가지>

    1. getItemCount()

    - 어댑터에서 관리하는 아이템 개수 반환

     

    2. onCreateViewHolder()

    - RecyclerView는 뷰홀더를 새로 만들어야 할 때 마다 이 메서드 호출

    - 뷰홀더와 뷰홀더 내부 View를 생성하고 초기화(뷰 내부 데이터를 채우지는 않음)

     

    3. onBindViewHolder()

    - RecyclerView는 뷰홀더와 데이터 연결할 때 이 메서드 호출

    - 뷰홀더 내부 View의 데이터 채움

     

    ...계속 추가 예정

    반응형

    댓글

Designed by Tistory.