쏭식
Ssongcode;
쏭식
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • JAVA (21)
      • Basic (21)
    • Kotlin (14)
      • Basic (14)
    • Android (64)
      • Basic (24)
      • JETPACK (30)
      • Compose (8)
      • 파고들기 (2)
    • Project (4)
    • etc (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • AAC
  • 기초100제
  • Kotlin
  • 리사이클러뷰
  • 백준
  • 코드업100제
  • 변수
  • 객체지향
  • 컴포즈
  • workmanager
  • compose
  • DataBinding
  • 상속
  • 배열
  • Adapter
  • Jetpack
  • livedata
  • ViewModel
  • 코딩테스트
  • 코틀린코테
  • 자바
  • Room
  • mvvm
  • 자료구조
  • Android
  • 메소드
  • 프로젝트회고
  • 코테
  • 코틀린
  • 알고리즘

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쏭식

Ssongcode;

[Android] RecyclerView 적용
Android/Basic

[Android] RecyclerView 적용

2022. 4. 30. 23:59

1. 먼저 홈프래그먼트 xml파일에 리싸이클러뷰 코드를 추가한다.

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/fragment_home_title_random_rv"
    android:layout_width="match_parent"
    android:layout_height="133dp"
    android:layout_marginStart="16dp"
    android:layout_marginLeft="16dp"
    android:orientation="horizontal"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintLeft_toLeftOf="@id/fragment_home_tlover_tv"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/fragment_home_title_random_nav"
    tools:listitem="@layout/item_home_random" />

 

2. 위의 코드처럼 추가를 했으면 리싸이클러뷰에 나타낼 아이템뷰 xml파일을 따로 생성해준다.

해당 코드는 이미지뷰와 텍스트뷰만 있으니 생략!!

 

3. 데이터클래스를 생성하고 해당 데이터를 추가한다.

data class HomeDataModel(
    var title: String? ="",
    var image: Int? = null,
    var date: String? ="",
    var nickname: String? ="",
    var location: String? =""
)

아이템에 해당하는 제목, 이미지, 데이터, 닉네임, 위치를 추가.

 

4. 어댑터 클래스와 뷰홀더를 생성한다.

class HomeRVAdapter(private val randomList: ArrayList<HomeDataModel>) :RecyclerView.Adapter<HomeRVAdapter.Holder>(){

    class Holder(val binding : ItemHomeRandomBinding) : RecyclerView.ViewHolder(binding.root){
        fun bind(random: HomeDataModel){
            binding.itemHomeRandomImgTitle.setText(random.title)
            binding.itemHomeRandomImg.setImageResource(random.image!!)
            binding.itemHomeRandomImgDate.setText(random.date)
            binding.itemHomeRandomImgNickname.setText(random.nickname)
            binding.itemHomeRandomImgLocation.setText(random.location)
        }
    }

 

5. 이제 홈프래그먼트에서 연결만 하면 끝 ~!!!

dataList.apply{
    add(HomeDataModel("title1", R.drawable.img1_item_home_random,"2022.04.28","Peter","Queens"))
    add(HomeDataModel("title2", R.drawable.img2_item_home_random,"2022.06.03","Tony","NewYork"))
    add(HomeDataModel("title1", R.drawable.img1_item_home_random,"2022.04.28","Peter","Queens"))
    add(HomeDataModel("title2", R.drawable.img2_item_home_random,"2022.06.03","Tony","NewYork"))
    add(HomeDataModel("title1", R.drawable.img1_item_home_random,"2022.04.28","Peter","Queens"))
    add(HomeDataModel("title2", R.drawable.img2_item_home_random,"2022.06.03","Tony","NewYork"))

}

val homeRVAdapter = HomeRVAdapter(dataList)
binding.fragmentHomeTitleRandomRv.adapter = homeRVAdapter
binding.fragmentHomeTitleRandomRv.layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)

더미데이터를 추가하고 어댑터와 연결해주면 다음과 같은 화면을 확인할 수 있다!!

처음 리싸이클러뷰를 접했을 때는 어려운 개념이였지만

앱 'FLO' 를 클론코딩해보고, 'TLOVER'프로젝트에 적용해보니 이젠 쉬운 개념이 되었다!!

 

저작자표시 (새창열림)

'Android > Basic' 카테고리의 다른 글

[Android] Intent - Activity 간 데이터 전달  (0) 2022.05.03
[Android] 이미지 앞으로 끌어오기 bringToFront()  (0) 2022.05.01
[Android] RecyclerView (2)  (0) 2022.04.29
[Android] RecyclerView  (0) 2022.04.28
[Android] ViewModel, LiveData  (0) 2022.04.27
    'Android/Basic' 카테고리의 다른 글
    • [Android] Intent - Activity 간 데이터 전달
    • [Android] 이미지 앞으로 끌어오기 bringToFront()
    • [Android] RecyclerView (2)
    • [Android] RecyclerView
    쏭식
    쏭식

    티스토리툴바