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
'안드로이드 > Travel Helper(가제)' 카테고리의 다른 글
[node.js]express-url, 쿼리스트링, http 파라미터 (0) | 2020.09.03 |
---|---|
[안드로이드 스튜디오]mariaDB연동 참고 블로그 주소 (0) | 2020.07.21 |
20200618 (코틀린)프래그먼트 RuntimeException 에러 (0) | 2020.06.18 |
20200617 (코틀린)프래그먼트 (0) | 2020.06.17 |