toInfoString static method

String toInfoString(
  1. RenderObjectElement element
)

Implementation

static String toInfoString(RenderObjectElement element) {
  String? fileLocation;
  int? line;
  int? column;
  if (kDebugMode) {
    WidgetInspectorService.instance.selection.current = element.renderObject;
    final id = WidgetInspectorService.instance
        // ignore: invalid_use_of_protected_member
        .toId(element.renderObject.toDiagnosticsNode(), _dokitViewCheckGroup);
    if (id == null) {
      return '';
    }
    final String nodeDesc = WidgetInspectorService.instance
        .getSelectedSummaryWidget(id, _dokitViewCheckGroup);

    final Map<String, dynamic> map =
        json.decode(nodeDesc) as Map<String, dynamic>;
    final Map<String, dynamic> location =
        map['creationLocation'] as Map<String, dynamic>;
    fileLocation = location['file'] as String;
    line = location['line'] as int;
    column = location['column'] as int;
  }

  final Offset offset =
      (element.renderObject as RenderBox).localToGlobal(Offset.zero);
  String info = '控件名称: ${element.widget.toString()}\n'
      '控件位置: 左${offset.dx} 上${offset.dy} 宽${element.size!.width} 高${element.size!.height}';
  if (fileLocation != null) {
    info += '\n源码位置: $fileLocation' '【行 ${line!} 列 ${column!}】';
  }
  return info;
}