From 6f9acb84fff2dbf863304dda8c304be5feaac905 Mon Sep 17 00:00:00 2001 From: Alhaad Gokhale Date: Wed, 13 Apr 2016 18:01:49 -0700 Subject: [PATCH] Repaint child view on attach / detach. --- packages/flutter/lib/src/rendering/child_view.dart | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/flutter/lib/src/rendering/child_view.dart b/packages/flutter/lib/src/rendering/child_view.dart index 6724ac6d96..56371db268 100644 --- a/packages/flutter/lib/src/rendering/child_view.dart +++ b/packages/flutter/lib/src/rendering/child_view.dart @@ -124,8 +124,8 @@ class ChildViewConnection { assert(_attached); assert(_viewOwner != null); assert(_viewKey == null); + assert(_viewInfo == null); _viewKey = _nextViewKey++; - _viewInfo = null; _viewContainer?.addChild(_viewKey, _viewOwner.impl); _viewOwner = null; assert(!_ViewContainerListenerImpl.instance._connections.containsKey(_viewKey)); @@ -253,12 +253,20 @@ class RenderChildView extends RenderBox { @override void attach(PipelineOwner owner) { super.attach(owner); - _child?._attach(); + if (_child != null) { + _child._attach(); + assert(_child._onViewInfoAvailable == null); + _child._onViewInfoAvailable = markNeedsPaint; + } } @override void detach() { - _child?._detach(); + if (_child != null) { + _child._detach(); + assert(_child._onViewInfoAvailable != null); + _child._onViewInfoAvailable = null; + } super.detach(); }