엄지월드

3. 앱 메인화면 만들기 본문

Kotlin

3. 앱 메인화면 만들기

킨글 2024. 4. 8. 22:20
  • xml을 통한 화면 구성과 컴포넌트 연결
    • binding 명명규칙
      • 첫글자 대문자, 언더스코어(_) 다음의 첫 단어 대문자 + Binding
      • fragment_first.xml > FragmentFirstBinding
  • 리스트 아이템 항목 만들기
    • item_image.xml 생성
    • 사진을 표시할 ImageView 컴포넌트 추가 
  • 리스트 (RecyclerView:리사이클러뷰)
    • fragment_first.xml에 <RecyclerView> 컴포넌트 추가 
  • 클래스 구성
    • FirstFragment 클래스에 RecyclerView 초기설정
      • LayoutManager 연결
      • RecyclerView에 표시할 초기 DataSet 리스트 생성 : url, like 등을 설정
      • RecylerView 어댑터 생성 (어떠한 데이터와 반복 역할을 하는 RecyclerView를 연결시켜 주는 역할)
        • 틀 : https://developer.android.com/guide/topics/ui/layout/recyclerview?hl=ko
        • 이미지를 불러오는 Glide 라이브러리로 ImageView에 이미지 표시
      • RecyclerView 어댑터에 DataSet 연결 
  • MainActivity = LAUNCHER > 제일 먼저 실행된다. 
  • activity_main.xml
    • <include layout="@layout/content_main" /> 
      • 다른 XML 파일을 여기에다가 가져오겠다.
  • 아이폰에서 사용하던 스토리보드 방식 > 안드로이드 스튜디오도 동일 방식 채용
  • RelativeLayout 
    • 'Relative Layout'은 모든 게 다 중첩으로 올라감.
    • android:layout_width="match_parent" : 가득 차게 함.
    • android:layout_height=" wrap_content" : wrap이라고 하면 높이만큼만. 즉 이미지 사이만큼만. 
    • app:srcCompat="@mipmap/ic_launcher"
  • binding.mRcvMain.adapter.notifyDataSetChanged()은 안되고 
    adapter.notifyDataSetChanged()이 되는 이유 
    • Recyler에서 생각하는 어댑터는 되게 부모, 할아버지의 어댑터이다. 그래서 any로 나오고, 어떠한 종류일지 모른다. 
    • 하지만 우리가 지정한 adapter는 CustomAdapter라는 아주 특정한 자식이다. 
    • 그래서 자식에게 바로 데이터가 바뀌었다는 notifyDataSetChanged() 함수를 만들어 주어 해결한다.
  • android:layout_height="wrap_content" 
    • match_parent로 하는 경우 겹쳐서 3개밖에 보이지 않는 이유는 가로세로 다 자기가 차지하게 됨. 
      즉, 하나의 녀석이 가로 세로 그냥 다 자기 자리를 차지해버리게 됨. 하나의 녀석이 외 화면 전체를 다 차지해버림. 그래서 다음 줄이 나오지 않음! 반복되는 화면의 경우 주의!
  • 복습
    • activity_main에서 inclue를 통해서 content_main에 이 xml을 포함하고 있음.
    • 호출 순서 : MainActivity 자동 호출 > fragment_first 호출됨
    • xml을 통한 화면 구성과 컴포넌트 연결
      • binding 명명규칙에 따른 바인딩 : fragment_first.xml > FragementFirstBinding
      • fragment_first.xml에 <RecyclerView> 컴포넌트가 추가됨
    • RecyclerView에서 반복 표시할 리스트 아이템 item_image.xml 생성
    • 사진을 표시할 ImageView 컴포넌트 추가
    • FirstFragment 클래스에 RecyclerView 초기 구성 작업
      • LayoutManager 연결 : 리사이클러뷰의 방향 등을 관장
        • 리사이클러뷰변수.layoutManager = 레이아웃매니저 변수
      • RecylerView에 표시할 초기 DataSet 생성 : 화면에 반복할 데이터를 규정
      • Recycler 어댑터 생성
        • 틀 복사 : https://developer.android.com/develop/ui/views/layout/recyclerview?hl=ko
        • 필수 함수
          • ViewHolder : 리스트의 항목으로 만든 item_image.xml 안에 있는 컴포넌트들을 정의
          • onCreateViewHolder : 리스트 항목의 뷰가 어떤 파일인지를 연결
          • onBindViewHolder : 리스트 항목의 수만큼 반복호출되어 항목별로 정보를 표시
      • RecyclerView 어댑터에 DataSet 연결
        • 리사이클러뷰변수.dataSet = 데이터셋 변수 

'Kotlin' 카테고리의 다른 글

6. 화면 이동 심화  (0) 2024.04.11
5. 화면 이동의 기초  (0) 2024.04.11
4. 리스트 화면 만들기  (0) 2024.04.11
2. 코틀린 만나보기  (0) 2024.04.07
1. Kotlin IDE 및 구조 설명  (2) 2024.04.07
Comments