안드로이드 recyclerView에서 setHasFixedSize 역할
IT 관련 지식/안드로이드 개발2022. 7. 25. 11:25
반응형
728x170
recyclerView를 사용한 앱들을 보면 setHasFixedSize를 사용하는 것을 볼 수 있다
이거의 역할은 무엇일까?
1. setHasFixSize의 역할
아래의 코드는 안드로이드 스튜디오 자바에 내장되어있는 recyclerView에 대한 함수 중 일부이다
void onItemsInsertedOrRemoved() {
if (hasFixedSize) layoutChildren();
else requestLayout();
}
내용을 간단하게 해석하면 hasFixedSize가 true 일 때는 지정한 item의 layout 정보를 가져오고
falsel일 때는 부모 layout의 layout 정보를 받아오게 한다
이게 무슨 뜻일까?
RecyclerView의 동작
RecyclerView는 내부 레이아웃이 변경될 때 마다 기본적으로 부모 레이아웃의 정보를 가져오고
그것을 토대로 item의 레이아웃을 조절합니다.
hasFixedSize를 true로 하면 이 과정을 생략해서 더욱 빠르게 recyclerView를 갱신할 수 있고
생략한 만큼 리소스를 적게 잡아먹게 됩니다.
2. 그래서 setHasFixedSize 써도 되는거임?
300x250
일반적인 경우에는 쓰는 것이 좋습니다.
그 이유는 일반적인 recyclerView에선 레이아웃이 변경될 이유가 없기 때문입니다.
참조 사이트
https://woovictory.github.io/2020/06/24/Android-RecyclerView-Attr/
https://stackoverflow.com/questions/28709220/understanding-recyclerview-sethasfixedsize
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
반응형
'IT 관련 지식 > 안드로이드 개발' 카테고리의 다른 글
[초급]안드로이드 DataStore 사용방법 A to Z (0) | 2022.08.06 |
---|---|
코틀린 안드로이드 정규식(Regex) 활용하기 -기본부터 심화 (0) | 2022.07.24 |
안드로이드 에뮬레이서 밖에서 or 안에서 실행하기 (0) | 2022.05.14 |
WorkManager에서 suspend 함수 사용 시 두 번 호출 문제 (0) | 2022.05.11 |
안드로이드 특정 에뮬에서만 애드몹 안나올 때 해결!!! (0) | 2021.01.18 |
댓글()