Якщо ви хочете зробити це лише один раз, зробіть це, тому що Framework буде викликати initState()
метод рівно один раз для кожного об'єкта стану, який він створює.
@override
void initState() {
super.initState();
WidgetsBinding.instance
.addPostFrameCallback((_) => executeAfterBuildComplete(context));
}
Якщо ви хочете робити це знову і знову, як на зворотному боці або перейти до наступного екрана та ін ..., тоді зробіть це, оскільки didChangeDependencies()
викликається, коли змінюється залежність цього стану.
Наприклад, якщо попередній виклик build
посилався на InheritedWidget
який пізніше змінився, фреймворк викликав би цей метод, щоб повідомити цей об'єкт про зміну.
Цей метод також називається відразу після initState
. З BuildContext.dependOnInheritedWidgetOfExactType
цього методу можна дзвонити безпечно .
@override
void didChangeDependencies() {
super.didChangeDependencies();
WidgetsBinding.instance
.addPostFrameCallback((_) => executeAfterBuildComplete(context));
}
Це ваша функція зворотного дзвінка
executeAfterBuildComplete([BuildContext context]){
print("Build Process Complete");
}
build
. Будувати можна в будь-який час кілька разів.