-
[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의 내용 ); } }
이렇게 하면 위젯이 화면에 그려진 후에 콜백 함수가 실행됩니다.
반응형'함께 공부하는 Flutter' 카테고리의 다른 글
[Flutter] 사용자 위치 파악 - dart:io 활용 (0) 2024.01.09 [Flutter] 똑같아 보이지만 다른 PageView & IndexedStack (0) 2024.01.04 [Flutter] GestureDetector 사용 (2) 2024.01.03 [Flutter] ListView.builder 를 사용할 때 고려해야 하는 점 (2) 2024.01.02 Flutter 정규식 설명과 예시 (2) 2024.01.02