엄지월드

4. 리스트 화면 만들기 본문

Kotlin

4. 리스트 화면 만들기

킨글 2024. 4. 11. 20:29
  • INFLATER : xml에 표기된 레이아웃을 객체화 시키는 것으로, xml 코드를 객체화해서 코드에서 사용하기 위한 것.
    xml을 갑자기 바꿔치기 할 때, 어딘가의 xml 화면을 집어넣을 때 사용. 어디서 갖고 오느냐와 같은 구조로 되어 있음.
  • fun에서 :은 돌려주는 값이지만, class에서는 :이 상속 받았다는 뜻이다. 
  • createViewHolder : 이 viewHolder를 만들겠다. viewType 형태의 아이템 뷰를 위한 viewHolder 객체를 생성.
    어떠한 형태의 화면을 사용할 것인데? 정의하는 것.  
  • onBindViewHolder : 행을 돌때마다, 즉, 화면에 그 행이 나타났을 때 그 화면이 나타났을 때 호출이 됨. 
  • RecyclerView에 대한 설명으로 올바른 것은? (2개)
    • 어댑터의 데이터 갯수가 0개여도 리사이클러뷰는 단말기의 가로높이남ㄴ큼 항목을 표시한다.
      • 데이터 갯수가 없으면 항목을 표시하지 않는다.
    • onBindViewHolder의 position: Int 값은 화면상에 보이는 순서이다. 
      • 데이터가 화면에 보이는 것과 무관하게 해당 어댑터의 전체 데이터셋에서의 정확한 순번을 의미한다.
    • onBindViewHolder는 해당 행의 데이터가 화면에 보일때 호출된다. 
      • 맞다. 화면에 보이지 않는데 호출되면 메모리 낭비겠죠.
    • 커스터마이징한 어댑터에서는 xml Binding을 할 수 없다.
      • 바인딩이 가능하다.
    • onCreateViewHolder에서는 1개의 고정적인 UI뿐만 아니라 여러개의 xml 파일 등을 통해 복수의 UI 형태를 사용할 수 있다. 
      • 사용 가능하다. 
      • 학습을 하다 보면 이미지를 여러개 보여줄 때가 있다. 이러한 형태뿐만 아니라 다른 형태의 리스트도 보여줄 때가 있고
      • 유명 앱을 보면 똑같은 리스트인데 어쩔 때는 그 버튼이 보였다가, 어쩔 때는 다른 이미지가 보였다가 이렇게 막 UI가 유리하게 바뀐다. 이 경우 binding을 여러 개로 바꾼 것이다. 특정한 어떤 값에 따라서 Binding을 바꿀 수 있다. 
  • 다음 설명 중 올바른 것은?
    • 이미지뷰에 이미지를 표시하는 방식은 1개이다.
      • 이미지뷰에 이미지를 표시하는 방식은 여러개가 존재한다. 
        이미지 리소스를 쓴다. 
    • ViewHolder 클래스의 행을 클릭할 때에는 itemView를 활용한다. 
      • 맞다.
    • ViewHolder 클래스의 행안의 항목은 별도로 클릭 이벤트를 줄 수 없다.
      • 별도의 클릭 이벤트를 각기 줄 수 있다.
      • 이벤트가 버튼이 여러 개인데 A 버튼, B 버튼 각각 다르게 줄 수 있다. 
        그런데 행에 이벤트를 줘버리게 되면 click event와 충돌이 날 수 있다.
      • 그러니까 따로따로 주는 것이 좋다.
    • onCreateViewHolder에서는 별도의 Binding 과정을 거쳐야만 컴포넌트를 연결할 수 있다.
      • 레퍼런스에서는 처음에 inflate 과정을 통해서 그냥 binding을 했었다. 
      • 하지만 별도의 과정을 통해 binding을 직접 가능하다.
        binding.root라는 방식을 통해서 최상위 뷰를 가져오는 방식으로 Customizing 가능하다. 
    • JSONObject에서 String 형태의 값을 가져오는 함수는 getBoolean이다.
      • getString이다. 
  • summary
    • 커스텀 어댑터 클래스 수정
      • 커스텀 클릭 이벤트 수식로직 추가
        • 클래스 매개변수 수정
          • class CustomAdapter(private val context: Context, private val dataSet: List<JSONObject>, click: CustomClickListener)
        • 클릭 이벤트 수신 변수 추가 
          • private var click : CustomClickListener = click 
      • 이미지 표시용 Glide 라이브러리 사용
        • 사용방법 Glide.with(context) 
                                  .load(data.getString(이미지를 불러올 url 주소 String)
                                  .fitCenter()
                                  .into(이미지를 표시할 컴포넌트 변수) 

'Kotlin' 카테고리의 다른 글

6. 화면 이동 심화  (0) 2024.04.11
5. 화면 이동의 기초  (0) 2024.04.11
3. 앱 메인화면 만들기  (0) 2024.04.08
2. 코틀린 만나보기  (0) 2024.04.07
1. Kotlin IDE 및 구조 설명  (2) 2024.04.07
Comments