ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Flutter] 알아두면 정말 유용한 addPostFrameCallback
    함께 공부하는 Flutter 2024. 1. 4. 18:26
    반응형

    Flutter를 개발하다보면 initState 에서 값을 초기화할 수 없는 것들이 있습니다.
    그럴 때 정말 유용한 콜백 함수 입니다.

    addPostFrameCallback은 Flutter에서 제공하는 메서드로, 위젯이 화면에 그려진 후에 콜백 함수를 실행하고자 할 때 사용됩니다. 이 메서드는 다음 프레임이 그려진 후에 실행되므로 화면 레이아웃이 확정된 상태에서 작업을 수행할 수 있습니다.

    addPostFrameCallback을 사용하면 초기 빌드(initial build) 단계에서 화면에 그려진 후에 추가적인 작업을 수행할 수 있습니다. 예를 들어, 위젯이 화면에 표시된 후에 애니메이션을 시작하거나, 화면에 그려진 후에 초기 데이터를 로드하는 등의 작업에 사용할 수 있습니다.

    이 메서드는 WidgetsBinding 클래스의 인스턴스를 통해 사용되며, 다음과 같이 호출됩니다:

    WidgetsBinding.instance!.addPostFrameCallback((_) {
      // 화면이 그려진 후에 실행되는 콜백 함수
      // 여기서 원하는 작업을 수행할 수 있습니다.
    });

    위 코드에서 _는 무시되는 매개변수입니다. addPostFrameCallback은 화면이 그려진 후에 실행되어야 하는 함수를 인자로 받습니다.

    이 메서드는 대부분의 경우에 initState 메서드 내에서 호출됩니다. initState에서 호출하면 해당 위젯이 최초로 생성될 때 한 번만 실행되며, 화면이 리로드되어도 다시 호출되지 않습니다. 그렇기 때문에 초기 빌드 이후에 실행되어야 하는 코드를 안전하게 작성할 수 있습니다.

    예시로, 다음과 같이 사용할 수 있습니다:

    class MyWidget extends StatefulWidget {
      @override
      _MyWidgetState createState() => _MyWidgetState();
    }
    
    class _MyWidgetState extends State<MyWidget> {
      @override
      void initState() {
        super.initState();
    
        WidgetsBinding.instance!.addPostFrameCallback((_) {
          // 화면이 그려진 후에 실행되는 콜백 함수
          print("The widget has been rendered on screen!");
        });
      }
    
      @override
      Widget build(BuildContext context) {
        return Container(
          // Widget의 내용
        );
      }
    }

    이렇게 하면 위젯이 화면에 그려진 후에 콜백 함수가 실행됩니다.

    반응형
Designed by Tistory.