getProperties method
Implementation
@override
Map<String, dynamic> getProperties({Element? ancestor}) {
Map<String, dynamic> properties = {};
properties[WidgetProperty.top.name] = 0;
properties[WidgetProperty.left.name] = 0;
properties[WidgetProperty.width.name] = 1080;
properties[WidgetProperty.height.name] = 2337;
properties[WidgetProperty.id.name] = element.hashCode;
properties[WidgetProperty.className.name] = element.widget.toString();
properties[WidgetProperty.flutterElement.name] = true;
properties[WidgetProperty.accessibilityLabel.name] =
element.findAncestorWidgetOfExactType<Semantics>()?.properties.label ?? ''; properties[WidgetProperty.accessibilityId.name] =
element.widget.runtimeType.toString();
try {
RenderBox? rbox = element.findRenderObject() as RenderBox?;
RenderBox? ancestorRbox = ancestor?.findRenderObject() as RenderBox?;
var offset = rbox!.localToGlobal(Offset.zero, ancestor: ancestorRbox);
var screenOffset = rbox.localToGlobal(Offset.zero);
final size = rbox.size;
// get device pixel ratio
FlutterView view = WidgetsBinding.instance.platformDispatcher.views.first;
var devicePixelRatio = view.devicePixelRatio;
// here multiple of 2.75 because the ScreenShot size in 2.75 they help to detect element of Hierarchy
properties[WidgetProperty.top.name] =
(offset.dy.toInt() * devicePixelRatio);
properties[WidgetProperty.left.name] =
(offset.dx.toInt() * devicePixelRatio);
properties[WidgetProperty.screenY.name] =
(screenOffset.dy.toInt() * devicePixelRatio);
properties[WidgetProperty.screenX.name] =
(screenOffset.dx.toInt() * devicePixelRatio);
properties[WidgetProperty.width.name] =
(size.width.toInt() * devicePixelRatio);
properties[WidgetProperty.height.name] =
(size.height.toInt() * devicePixelRatio);
properties[WidgetProperty.visible.name] = isWidgetVisible(rbox);
properties[WidgetProperty.visibility.name] = isWidgetVisible(rbox);
} catch (e) {}
return properties;
}