오늘은 Andoid에서 사용하는 invalidate()와 requestLayout()의 차이에 대해 알아보겠다!
우선 View의 생명주기를 알아놓으면 좋다.
invalidate는 onDraw를 반드시 호출하지만, 사이즈를 지정하는 콜백인 onMeasure가 호출되진 않는다.
그러므로 Size가 변하지 않는다.
requestLayout은 invalidate와 반대로 onMeasure를 호출하지만, onDraw를 반드시 호출하진 않는다.
대신 onMeasure가 호출되므로 Size가 업데이트된다.
즉, 단순한 변경 사항을 보여주기 위하여 다시 그리는 경우엔 invalidate를 사용하고 사이즈가 바뀌어 뷰 간의 경계에도 영향을 준다면 requestLayout을 호출해서 사용하자!
'📱 Android' 카테고리의 다른 글
[Android] Room DB 마이그레이션에 대해 (0) | 2023.12.04 |
---|---|
[Android] 프로가드(Proguard)에 대해 (0) | 2023.11.29 |
[Android] 캐시에 대해 (0) | 2023.11.03 |
[Android] include, merge 태그에 대해 (0) | 2023.10.26 |
[Android] Manifest Placeholder에 대해 (0) | 2023.10.20 |