Coaspe

Flutter - MaterialPageRoute 와 PageRoute 본문

Flutter/번역

Flutter - MaterialPageRoute 와 PageRoute

Coaspe 2023. 2. 17. 14:03

MaterialPageRoute

1. IOS, Android 각각의 플랫폼에 맞게 transition을 진행합니다.

 

PageRouteBuilder

1. transitionBuilder를 사용해 transition을 정의 할 수 있습니다.

 

Staggered animation

  • 모든 animations들은 같은 하나의 AnimationController로 관리된다.
    • 실제로 얼마나 애니매이션이 지속되는지와 상관없이, Controller의 값은 반드시 0.0과 1.0 사이어야한다.
    • 각각의 animation은 0.0 ~ 1.0 사이의 Interval class를 가진다.
    • Interval 안에서 animate 되는 각각의 프로퍼티는 Tween을 생성한다. Tween은 해당 프로퍼티의 시작과 끝 값을 정한다.
    • Tween은 controller로 관리되는 Animation 객체를 생산한다.

AnimatedBuilder extends AnimatedWidget extends StatefulWidget 

1. animation 과 widget인 builder를 받아서 animation build

 

AnimationController extends Animation<double>

1. Animation을 멈추거나, 시작, 되감기 한다.

2. Animation에 특정한 값을 설정한다.

3. Animation의 upperBound(범의에서 가장 높은 값), lowerBount(upperBound의 반대) 값을 정의한다.

4. 물리적 시뮬레이션을 사용해 fling animation을 생성한다.

 

디폴트로 0.0 과 1.0 사이의 값을 주어진 duration 동안 생성합니다. 디바이스가 새로운 프레임을 디스플레이 할 준비가 되면 controller가 새로운 값을 생성합니다.(보통 60 프레임)

AnimationController는 vsync를 사용하기 위해서는 TickerProvider가 필요합니다. AnimationController가 State로 부터 생성되면, 해당 State는 TickerProviderStateMixin이나 SingleTickerProviderStateMixin으로 TickerProvider interface를 구현하면 됩니다.

 

AnimationController는 사용이 끝나면 dispose되어야 합니다. StatefulWidget과 함께 사용하게 되면 보통 initState에서 controller를 생성하고, dispose 함수에서 dispose 합니다.

 

Animation을 시작시키는 메소드들은 TickerFuture 객체를 반환합니다. Animation이 취소되면, future는 완료되지 않습니다. 이 객체는 TickerFuture.orCancel 프로퍼티 또한 가지고 있습니다. Animation이 성공적으로 완료되면 future를 반환하고, 실패하면 에러를 반환합니다.

 

 

Tween  extends Animatable

Tween 객체를 animation과 사용하고 싶다면, Tween의 animate 메소드에 수정하고 싶은 Animation을 넘기고 호출하면 됩니다.

한 Animation에 Tween을 chain으로 사용하는 것 도 가능하다.

Controller의 lifecycle 동안에 두개의 offsets 사이의 값을 반환합니다. Tween 대신 MaterialPointArcTween을 사용하면, 반환하는 포인트들의 그래프는 직선이 아닌 곡선이 됩니다.

 

Comments