TodayILearned/Android&Kotlin

앱개발 숙련 TIL - CustomView, RecyclerView

YJ_ILY 2023. 8. 24. 20:49

커스텀 항복 뷰(CustomView)

커스텀 뷰 예시

  • 내가 원하는 뷰를 조합을 해서 만들 수 있음
  • 다수의 문자열이나 이미지를 포함할 수 있음

커스텀 항목 뷰 설정 절차

  1. 커스텀 항목을 위한 xml 레이아웃 정의
  2. 항목 관련 데이터 클래스 정의
  3. 어댑터 클래스 정의
  4. 메인화면 레이아웃에 ListView 위젯 정의
  5. 어댑터를 생성하고 어댑터뷰 객체에 연결

*데이터 클래스?

data class MyItem(val aIcon:Int, val aName:String, val aAge:String) {}

데이터를 다루는데 최적화된 클래스
equals(), hashCode(), toString(), copy(), componentN() 
위의 5가지 함수들을 내부적으로 자동으로 생성함

리사이클러 뷰(RecyclerView)

  • 한정적인 화면에 많은 데이터를 넣을 수 있는 뷰
  • View를 재활용해서 사용하겠다는 뜻
  • 예를 들어 아이템이 100개여도 10개 정도의 뷰만 만들고 만든 10개의 뷰를 재활용해서 사용
  • 뷰를 계속 만들어야하는 ListView의 단점을 보완, 성능이 훨씬 좋음

리사이클러 뷰 사용

  • Adapter
    • 데이터와 리사이클러뷰 사이의 통신을 위한 연결체
    • 데이터를 다양한 형식의 리스트 형식을 보여주기 위해서 데이터와 리사이클러 뷰 사이에 존재하는 객체
  • ViewHolder
    • 화면에 표시될 데이터나 아이템들을 저장하는 역할
    • 스크롤 해서 위로 올라간 View를 재활용하기 위해서 View를 기억하고 있어야 하는데 그 역할을 하는 것이 ViewHolder