[flutter] 애니메이션 진행 상태에 따른 콜백 함수 활용하기

Flutter에서는 애니메이션의 진행 상태를 감지하고 이에 따른 작업을 수행하는 것이 중요합니다. 특히, 애니메이션이 시작되거나 끝났을 때 특정 작업을 수행해야 할 때 애니메이션 컨트롤러에 콜백 함수를 등록하여 이를 처리할 수 있습니다.

이번 게시물에서는 Flutter의 AnimatedBuilder를 사용하여 애니메이션의 진행 상태에 따른 콜백 함수 활용 방법을 살펴보겠습니다.

애니메이션 컨트롤러에 콜백 함수 등록하기

애니메이션 컨트롤러에서는 addListener() 함수를 사용하여 애니메이션 진행 중에 콜백 함수를 등록할 수 있습니다. 이 콜백 함수는 애니메이션의 값이 변경될 때마다 호출됩니다.

아래는 예시 코드입니다.

AnimationController _controller;
Animation<double> _animation;

@override
void initState() {
  _controller = AnimationController(
    duration: Duration(seconds: 2),
    vsync: this,
  )..addListener(() {
    // 애니메이션이 진행 중일 때 수행할 작업
  });

  _animation = Tween<double>(begin: 0, end: 1).animate(_controller);
  super.initState();
}

위의 코드에서는 AnimationController에 addListener() 함수를 사용하여 애니메이션이 진행 중일 때 수행할 작업을 등록했습니다.

AnimatedBuilder를 활용한 애니메이션 콜백 함수

때로는 애니메이션의 진행 상태에 따라 Widget을 다시 빌드해야 하는 경우가 있습니다. 이때 AnimatedBuilder를 사용하면 애니메이션의 값이 변경될 때마다 Widget을 다시 빌드할 수 있습니다. AnimatedBuilder를 통해 콜백 함수를 등록하면 애니메이션의 값이 변경될 때마다 수행할 작업을 구현할 수 있습니다.

아래는 예시 코드입니다.

@override
Widget build(BuildContext context) {
  return AnimatedBuilder(
    animation: _controller,
    builder: (context, child) {
      // 애니메이션 값이 변경될 때마다 수행할 작업
      return Container();
    }
  );
}

위의 코드에서는 AnimatedBuilder를 사용하여 애니메이션 값이 변경될 때마다 수행할 작업을 구현했습니다.

결론

Flutter에서는 AnimatedBuilder를 활용하여 애니메이션의 진행 상태에 따른 콜백 함수를 간편하게 등록할 수 있습니다. 이를 통해 애니메이션의 진행 상태를 감지하고 이에 따른 UI 업데이트 등을 처리할 수 있습니다.

이상으로 Flutter에서 애니메이션 진행 상태에 따른 콜백 함수 활용 방법에 대해 알아보았습니다.

다른 문의가 있으실 경우 언제든지 물어보세요!