findViewByKey static method

BuildContext? findViewByKey(
  1. String key,
  2. BuildContext context
)

Implementation

static BuildContext? findViewByKey(String key, BuildContext context) {
  BuildContext? result;
  final visitedElements = <Element>{};
  void searchForWidget(Element element) {
    try {
      if (!visitedElements.contains(element)) {
        visitedElements.add(element);
        String? widgetKey = extractKeyValue(element.widget.key);
        if (widgetKey != null && widgetKey.contains("<'") == true &&
            widgetKey.contains("'>") == true) {
          if (widgetKey == key) {
            result = element;
            return;
          }
        }
        element.visitChildElements(searchForWidget);
      }
    } catch (e) {
      debugPrint("Error in searchForWidget: $e");
    }
  }

  try {
    context.visitChildElements(searchForWidget);
  } catch (e) {
    debugPrint("Error in findViewByKey: $e");
  }
  return result;
}