logWidgetTree function
Log tree from current screen frame.
Implementation
Future<List<Map<String, dynamic>>> logWidgetTree() async {
final completer = Completer<List<Map<String, dynamic>>>();
WidgetsBinding.instance.addPostFrameCallback((_) async {
WidgetsFlutterBinding.ensureInitialized();
// Wait for the microtask to complete after the frame rendering
await SchedulerBinding.instance.endOfFrame;
final element = WidgetsBinding.instance.rootElement;
if (element != null) {
completer.complete(parseWidgetTree(element));
} else {
completer.completeError('Failed to retrieve the render view element');
}
});
return completer.future;
}