파파비의 블로그

플러터, flutter) Animated Builder, 최적화를 위해 꼭 쓰기 본문

개발/flutter

플러터, flutter) Animated Builder, 최적화를 위해 꼭 쓰기

N. Dave 2020. 6. 20. 09:37
반응형

이전글에서 소개한 manually 애니메이션을 일일히 설정할 때는 단점이 있다.

바로 Listener을 설정해서 Setstate을 계속 돌리는 것이었다.

굉장히 비효율적이고, 우리는 원하는 위젯만 rebuild하고 싶다.

그렇게 해주는 것이 

 

AnimatedBuilder 위젯이다!

 

설정하는 방법은 전혀 어렵지 않다.

 

Animation이 적용되는 위젯, 즉 원래 같으면 animation레퍼런스를 넣어서 값을 조작해주는 부분의 위젯을

AnimatedBuilder로 감싸면 된다.

몇가지 짚고 넘어가야할 부분들이 있다.

 

1. Animatedbuilder 속성에서 animation은 그냥 animation 레퍼런스를 넣으면 된다

 

2. builder에는 context랑 child 객체가 들어간다.

 

3. child는 보통 위젯에서 child 개념이 아닌, builder에서 child개념을 의미한다.

 - 여기까지만 rebuild하고, child부터는 rebuild하지 않는다! 는 의미

 - 그래서 여기를 보면, AnimatedBuilder의 child는 Form~ 부터이고,

 builder에서 그 child를 ch로 받아서, Container의 child로부여하고 있는 것을 알 수 있다.

 

 > 잘 이해하도록 한다!

 

4. 그래서 아무튼 이렇게 하게 되면 Container 위젯만 계속 rebuild되고 나머지부분들은 그냥 자리만 이동하게 되어

훨씬 비용이 적게 들게 된다.

 

 

마지막으로,

당연히 맨 처음에 AnimatedBuilder를 넣기전 애니메이션의 addlistener은 없애도된다 

(그거없애려고 AnimatedBuilder쓴거니까..)

 

 

반응형
Comments