본문 바로가기

빈 구멍 채우기

[Android] RecyclerView setHasFixedSize

developer.android.com/reference/kotlin/androidx/recyclerview/widget/RecyclerView#sethasfixedsize

 

RecyclerView  |  Android 개발자  |  Android Developers

RecyclerView open class RecyclerView : ViewGroup, ScrollingView, NestedScrollingChild2, NestedScrollingChild3 Known Direct Subclasses BaseGridView An abstract base class for vertically and horizontally scrolling lists. WearableRecyclerView Wearable speci

developer.android.com

androidx.recyclerview.widget.RecyclerView

open fun setHasFixedSize(hasFixedSize: Boolean) : Unit


hasFixedSize : Boolean - 어댑터의 변화가 리사이클러의 크기에 영향을 주지 않는다면 true, 영향을 준다면 false


리사이클러뷰의 크기가 어댑터의 내용에 따라 영향받지 않는다는 것을 미리 알면 리사이클러뷰는 여러 최적화를 수행한다. 리사이클러뷰의 자식 뷰나 어뎁터의 내용들(항목 개수 제외하고)과 상관없이 다른 요소들(부모 뷰의 크기 등)에 의해서는 크기가 변경되는 것이다.

리사이클러뷰가 이 경우에 해당하면 true를 설정하라. 그러면 어댑터의 내용이 변경되면 리사이클러뷰가 레이아웃 전체를 무효화해 다시 그리는 것을 막는다.

 

  • 리사이클러뷰의 layout_height 값이 match_parent 일 때 > hasFixedSize(true)
  • 리사이클러뷰의 layout_height 값이 wrap_content 일 때 > hasFixedSize(false)

리사이클러뷰 사용시의 최적화를 위하여.