20200616 (코틀린)리사이클러뷰

2020. 6. 16. 20:42안드로이드/Travel Helper(가제)

리사이클러뷰에서 해야하는 것

1. gradle에 implement

더보기

implementation "androidx.recyclerview:recyclerview:1.1.0"
// For control over item selection of both touch and mouse driven selection
implementation "androidx.recyclerview:recyclerview-selection:1.1.0-rc01"

2. 레이아웃에 리사이클러뷰 붙이기

더보기

layout_height가 리사이클러뷰의 길이가 아니라 여기에 붙을 한 아이템의 높이를 결정한다.
추천하는건 wrap_content.

한 아이템당 높이?간격 조절하고싶으면 3번에서 고려하는게 좋을듯

3. 리사이클러뷰에 붙을 아이템 레이아웃 구성

더보기

한 아이템당의 구성이다.

게시글 목록에 제목-부제-사진 띄우고싶으면 여기서 각각의 뷰 자리를 배치하는거

4. 아이템에 해당하는 데이터구조

더보기

이런식으로 적으면 된다.
코틀린의 장점이 가장 돋보이는 예제라고 생각한다.(get,set을 나열 안해도 된다는게 이렇게 좋구나...)

class DataClassCountry (val title: String, val contents:String, val: String)

5. 어댑터 클래스 작성(공부해애애애애)

더보기

리사이클러뷰의 특징이 도드라지는...부분이라고 생각한다...사실 잘 몰라...ㅋㅋㅋㅋㅋㅋㅋㅋ

리사이클러뷰가 재사용하는 리스트다보니 리스트 갱신과 관련된 역할을 하는 것 같다...일단 쓰라해서 갖다붙였다..ㅎㅎ

6. 액티비티에 어댑터 적용

더보기

레이아웃매니저 적용해야함.(vertical, horizon, grid 등 형태 바꿀수도있다.)

 

 

오늘의 문제

 

1.ㅎㅎㅎ왜...아이템이 하나만 보이지...ㅎㅎㅎ더미데이터가 안들어가나....

더보기

->아이템이 하나만 뜨는데다가 리사이클러뷰가 안움직여서 어디서부터 문제인지 혼란했다
->3시간을 고생했는데 껏다켜니 해결됐습니다...ㅎㅎㅎㅎ

 

 

2. 리사이클러뷰는 동작하는데 왜 한번에 하나씩만 나오는거야ㅠㅠㅠㅠㅠㅠㅠ

더보기

다 wrap_content라고 생각했는데 3번(리사이클러뷰에 붙을 아이템 레이아웃 구성)부분이 문제였다.

레이아웃 자체의 레이아웃(ㅋㅋㅋㅋ뭐라구분해서 말해야하지)의 layout_height가 문제였다. 이게 기본적으로 match_parent가 되어있는데 이러면 부모레이아웃이 되는 리스트뷰의 높이에 맞추게 되면서 한번에 하나의 아이템만 보이게 되는거였다.

 

참고

https://developer.android.com/s/results/?q=recyclerview&hl=ko (gradle 의존성 버전은 이곳에서)

https://blog.yena.io/studynote/2017/12/06/Android-Kotlin-RecyclerView1.html

 

[Android][Kotlin] 코틀린 RecyclerView(1)

마지막 수정 : 2018-06-29 ListView와 RecyclerView ListView에서는 모든 데이터에 대한 View를 만들고, View가 사라졌다가 나타날 때마다 리소스를 불러와야 한다. 예를 들어, 화면을 아래로 스크롤 했다가 다�

blog.yena.io