함께 공부하는 Flutter
[Flutter] 알아두면 정말 유용한 addPostFrameCallback
냥냥박사에디
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의 내용
);
}
}
이렇게 하면 위젯이 화면에 그려진 후에 콜백 함수가 실행됩니다.
반응형