Android Compose LaunchedEffect doesn't work

사용 언어: Kotlin 1.9.0

사용 버전: Android Studio Hedgehog 2023.1.1


안드로이드 컴포즈 LaunchedEffect doesn't work를 알아보겠습니다.


LaunchedEffect는 Coroutine을 이용하여 UI를 업데이트할 때 사용합니다. 

key parameter의 값이 변화하면 계속해서 추적하는 그러한 함수입니다.


그런데, 이게 제 예상과는 다르게 업데이트가 되지 않는 겁니다.

한 번 보시죠.







보면, 진행바가 진행되는 동안 recomposition이 일어나지 않는 것을 알 수 있습니다.

분명 해당 class는 castleUiState에서 추적되고 있는데 말이죠.









해당 progressbar는 location 값으로 작동합니다.






위의 코드를 아래처럼 변경해 줍니다.





화면을 다시 그리는 recomposition을 발동시키기 위해서는 변화하는 값을 State로 만들 필요가 있습니다. 그 부분을 놓친 것이 문제였습니다.

실행해 봅시다.





LuanchedEffect가 잘 작동하는 것을 확인할 수 있습니다.



참고 프로젝트




끝.


카테고리: Android, Compose


댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Python OpenCV 빈 화면 만들기

tensorflow tf.random.uniform()

Android Notification with Full Screen

KiCad 시작하기 2 (PCB 만들기)

Android Minimum touch target size

Python bs4.SoupStrainer()

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

음악 총보(Score), 파트보(Part)

tensorflow tf.expand_dims()