Skip to content

뷰모델과 애니메이션을 같이 사용했을 시 발생할 수 있는 ISSUE

HyeonSeongKang edited this page Aug 29, 2023 · 1 revision

안녕하세요. 안드로이드 팀의 강현성 입니다.

이번 프로젝트에서 뷰모델을 통해서 데이터 상태관리를 함과 동시에 애니메이션 구현했는데 이때 발생했던 이슈에 대해서 공유하려 합니다.

📝 문제

커스텀 뷰의 애니메이션이 진행 중일 때, 뷰모델이 상태를 업데이트하면 해당 애니메이션이 초기화되고 상태가 즉시 업데이트되어 진행중이던 애니메이션이 끊기는 문제가 발생했습니다.

🔍 원인

애니메이션 도중 상태 업데이트가 발생하면, 애니메이션이 완료되기 전에 뷰의 상태가 갱신되어, 애니메이션 흐름이 중간에 끊기게 됩니다.

💡 해결 방법

🎉 withEndAction

withEndAction은 애니메이션이 완료된 후 실행될 코드 블록을 정의하는 함수입니다. 애니메이션의 흐름을 방해받지 않고, 완전히 종료된 후에 원하는 작업(여기서는 상태 업데이트)을 수행할 수 있도록 도와줍니다.

// 실제 코드
hyundaiButtonView.animateBorder().withEndAction {
    handleOptionUpdates()
}

Android 공식 문서

ViewPropertyAnimator

그렇게 해서 잘 만들어진 애니메이션

Clone this wiki locally