개발/안드로이드-kotlin

[android/kotlin] RecyclerView이 보이지 않을 때

어중E 2022. 8. 6. 09:50

[android/kotlin] RecyclerView이 보이지 않을 때

안드로이드에는 RecyclerView가 보이지 않은 경우가 있었습니다. 이때 디버그를 해보니 onCreateViewHolder 도 호출이 안돼서 찾아보니 결론은 레이아웃의 형태를 가로 형태로 보여줄 것인지, 세로 형태로 보여줄 것인지 아니면 그리드 형태로 보여줄 것인지 정해주지 않아서였던 것 같습니다.

 

해결 방법으로는 레이아웃의 형태를 설정해 주면 됩니다.

 

.xml에서 설정하는 방법

<androidx.recyclerview.widget.RecyclerView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/recyclerview"
       app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
       android:orientation="vertical"
       tools:listitem="@layout/item_recycler_ex"
       app:layout_constraintRight_toRightOf="parent"/>

해당 코드에서 app:layoutManager로 androidx.recyclerview.widget.LinearLayoutManager 을 설정해주고, android:orientation으로 vertical을 설정해주면 됩니다. LinearLayoutManager 말고도 GridLayoutManager(그리드 형식), StaggeredGridLayoutManager(지그재그 그리드 형식)을 설정할 수 있습니다.

 

.kt에서 설정하는 방법

recyclerView = view.findViewById(R.id.리사이클러뷰);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));

리사이클러뷰의 객체에 Layout을 직접 설정해주는 방법입니다. 마찬가지로 위의 코드에서는 LinearLayoutManager 방식을 사용했지만 GridLayoutManager와 StgaggeredGridLayoutManager도 사용 가능합니다.