배워서 남주는 코딩
RecyclerView. No adapter attached; skipping layout.
한글순화운동
2020. 6. 24. 21:59
리사이클러뷰는 이제 안드로이드에서도 기초이자 기본이죠.
리스트뷰가 베이스 어댑터로 간편하게 구현할 수 있었다면,
리사이클러뷰는 어댑터를 커스텀하여 뷰 홀더와 바인딩이 필요합니다.
Xml쪽에 구현하는 방법도 있고, 오로지 자바나 코틀린에만 서술하는 방법 그리고 당연히 그 중간 방법이 있겠습니다.
그러다가 어댑터가 뻑이나면... 사고 회로도 뻑이 나겠죠.
역시나 오늘도 정리해보도록 하겠습니다.
1. setAdapter를 하지 않았다. 네 그럴 수 있어요.
2. 레이아웃 매니저를 설정하지 않았다. 리니어든, 그리드든 레이아웃 매니저를 설정해 주세요. 그래야 랜더링 하죠.
3. 어댑터에서 자동 생성되는 함수 중에 getItemCount 가 있죠. 간혹 자동생성된 채로 0이 리턴되거나 문법이 잘못되면, 진짜 0개가 생성됩니다.
4. 데이터에 변화가 생기는 곳에 notifyDataStateChanged 메소드를 어댑터에 붙여줍니다.
5. 어댑터 선언과 연결 위치에 따라 다릅니다.
보통 액티비티의 경우 onCreate, 프래그먼트의 경우 onCreateView에 선언을 하고, 다시말해 가능한한 앞에 선언하고
어댑터는 데이터를 생성 혹은 받아오는 곳에서 연결합니다.
파이어베이스와 같은 경우, 밸류이벤트 리스너의 데이터 체인지 메소드에 구현하는게 맞겠죠.
6. 간혹 컴파일, 타켓 api ver.가 28인 경우 에러가 난다는 보고가 있습니다.