어디까지가 화면에 보이는 것 인가?

image.png

현재 퀴즈 진행 페이지의 구조는

LazyColumn {

HorizontalPager{

Column/Lazy Column {

}

}

}

위에 코드로 표시된 부분에 Column을 넣어야 하는가? Lazy Column을 넣어야 하는가에 대한 의문이 생겼다.

정확히 얘기하면

Column 대신 Lazy Column을 넣었을 때 어떤 이득이 있는가?

정도로 얘기할 수 있겠다.

스크롤 안에 스크롤이요? 나 죽을게~

이중 스크롤로 화면을 구성하려면 높이 제한이 필요하다.

높이 제한을 두지 않고 스크롤 안에 스크롤을 배치하면 앱이 바로 죽어버린다.

아래처럼 높이 제한을 다르게 뒀을 때 조금씩 다른 방식으로 스크롤 되는 모습을 확인할 수 있다.

LazyColumn + height(300.dp)

Screen_recording_20241111_203313.mp4

LazyColumn + height(900.dp)

Screen_recording_20241111_203625.mp4

Column + height(900.dp)

Screen_recording_20241111_203751.mp4

그래서 성능이랑 무슨 상관인데?

결국 중요한 건 한 화면의 기준인데, LazyColumn의 height가 900.dp여서 화면에 보이지 않으면 그리지 않는 건가?

height(900.dp)

image.png

height(300.dp)

image.png

결론적으로 확인할 수 있는건 내 화면에 보이지 않더라도 화면에 그리고 있다는 것이다.

크기를 왕창 늘려서 화면에서 보이지 않아도 LazyColumn은 그리고 있다!

현재 QuestionScreen 구조에서 Question에는 Column을 사용해도 차이가 없다고 결론지을 수 있겠다.

<aside> ✏️

LazyColumn이 화면에 보이는 것만 그리고 있다고 하는데, 내 화면에 보이지 않으면 그게 화면에 보이지 않는 상태인가? 여기서 의문이 들어 약간의 예시와 함께 알아봤습니다. 글을 그렇게 잘 쓰는 편도 아니고 해서 연습할 겸 간단하게 한 번 적어봤어요~

</aside>