Exemplo n.º 1
0
        protected override void insertChildRenderObject(RenderObject child, object slotRaw)
        {
            D.assert(slotRaw != null);
            int slot = (int)slotRaw;

            D.assert(this._currentlyUpdatingChildIndex == slot);
            D.assert(this.renderObject.debugValidateChild(child));
            this.renderObject.insert((RenderBox)child, after: this._currentBeforeChild);
            D.assert(() => {
                SliverMultiBoxAdaptorParentData childParentData = (SliverMultiBoxAdaptorParentData)child.parentData;
                D.assert(slot == childParentData.index);
                return(true);
            });
        }
Exemplo n.º 2
0
        public override void applyParentData(RenderObject renderObject)
        {
            D.assert(renderObject.parentData is SliverMultiBoxAdaptorParentData);
            SliverMultiBoxAdaptorParentData parentData = (SliverMultiBoxAdaptorParentData)renderObject.parentData;

            if (parentData.keepAlive != this.keepAlive)
            {
                parentData.keepAlive = this.keepAlive;
                var targetParent = renderObject.parent;
                if (targetParent is RenderObject && !this.keepAlive)
                {
                    ((RenderObject)targetParent).markNeedsLayout();
                }
            }
        }
Exemplo n.º 3
0
        public override void debugVisitOnstageChildren(ElementVisitor visitor)
        {
            this._childElements.Values.Where(child => {
                SliverMultiBoxAdaptorParentData parentData =
                    (SliverMultiBoxAdaptorParentData)child.renderObject.parentData;
                double itemExtent = 0;
                switch (this.renderObject.constraints.axis)
                {
                case Axis.horizontal:
                    itemExtent = child.renderObject.paintBounds.width;
                    break;

                case Axis.vertical:
                    itemExtent = child.renderObject.paintBounds.height;
                    break;
                }

                return(parentData.layoutOffset < this.renderObject.constraints.scrollOffset +
                       this.renderObject.constraints.remainingPaintExtent &&
                       parentData.layoutOffset + itemExtent > this.renderObject.constraints.scrollOffset);
            }).ToList().ForEach(e => visitor(e));
        }