要将代码拆分为两个方法,您可以将处理用户回答的逻辑和等待按下“下一步”按钮的逻辑拆分为两个单独的方法。
这是一个例子:
Completer<void>? nextButtonCompleter;
Future<void> processAnswer(String submittedAnswer) async {
// Your code for processing the answer here
// ...
// Wait for "Next" button to be pressed
await waitForNextButton();
// Continue with other code
}
Future<void> waitForNextButton() async {
final completer = Completer<void>();
nextButtonCompleter = completer;
await completer.future;
nextButtonCompleter = null;
}
void onNextButtonPressed() {
setState(() => callMyFun());
nextButtonCompleter?.complete();
}
// In your button widget
TextButton(
child: Text("Next >>"),
onPressed: onNextButtonPressed,
)