RN 프로젝트를 진행하며 터치시 확장되는 컴포넌트에 애니메이션을 추가하고 싶어 평소대로 Animated
API 를 사용해 작업하다 다른 방법은 없을까 검색하다 Layout Animation
API를 알게되었다.
LayoutAnimation.configureNext(animationConfig)
통해서 설정해두면configureNext
에서 설정한 애니메이션을 적용const toggleIsExpanded = () => {
// LayoutAnimation 적용
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut)
setIsExpanded(prev => !prev)
}
위 코드 한줄로 매우 쉽게 컴포넌트가 확장되며 Height가 달라질때 부드럽게 애니메이션이 적용되었다.
Animated API를 사용해 기능을 구현하려면
Animated Value
로 지정하고isExpanded
state를 바탕으로 useEffect
훅 안에서 Height 값을 바꿔줌Animated Height
를 Animated.View
에 적용방법으로 접근했는데 다음과 같은 문제점들이 존재했다.
LayoutAnimation API
가 지원하지 않는 애니메이션 속성들 (backgroundColor, position....)을 지원할때
좋은 정보 감사합니다