everyAttachedWidgetRenderBox method

bool everyAttachedWidgetRenderBox(
  1. EveryRenderBoxModelHandlerCallback callback
)
inherited

Implementation

bool everyAttachedWidgetRenderBox(EveryRenderBoxModelHandlerCallback callback) {
  if (_widgetRenderObjects.isEmpty) return false;

  if (_widgetRenderObjects.length == 1) {
    for (final entry in _widgetRenderObjects.entries) {
      final RenderBoxModel ro = entry.value;
      return ro.attached ? callback(entry.key, ro) : false;
    }
  }

  final bool canUseLayoutPassCache = renderBoxModelInLayoutStack.isNotEmpty;
  if (canUseLayoutPassCache) {
    if (_cachedAttachedWidgetRenderBoxesLayoutPassId !=
        renderBoxModelLayoutPassId) {
      _cachedAttachedWidgetRenderBoxesLayoutPassId =
          renderBoxModelLayoutPassId;
      final List<MapEntry<flutter.RenderObjectElement, RenderBoxModel>>
          attachedEntries =
          <MapEntry<flutter.RenderObjectElement, RenderBoxModel>>[];
      for (final entry in _widgetRenderObjects.entries) {
        final RenderBoxModel ro = entry.value;
        if (ro.attached) {
          attachedEntries.add(MapEntry(entry.key, ro));
        }
      }
      _cachedAttachedWidgetRenderBoxes = attachedEntries;
    }

    final List<MapEntry<flutter.RenderObjectElement, RenderBoxModel>>
        attachedEntries =
        _cachedAttachedWidgetRenderBoxes ??
            const <MapEntry<flutter.RenderObjectElement, RenderBoxModel>>[];
    for (final entry in attachedEntries) {
      if (!callback(entry.key, entry.value)) {
        return false;
      }
    }
    return true;
  }

  for (final entry in _widgetRenderObjects.entries) {
    final ro = entry.value;
    if (ro.attached && !callback(entry.key, ro)) {
      return false;
    }
  }
  return true;
}