public float estimateMaxScrollOffset(SliverConstraints constraints, int firstIndex = 0, int lastIndex = 0, float leadingScrollOffset = 0, float trailingScrollOffset = 0 ) { int?childCount = this.childCount; if (childCount == null) { return(float.PositiveInfinity); } return(widget.estimateMaxScrollOffset( constraints, firstIndex, lastIndex, leadingScrollOffset, trailingScrollOffset ) ?? _extrapolateMaxScrollOffset( firstIndex, lastIndex, leadingScrollOffset, trailingScrollOffset, childCount.Value )); }
public BoxConstraints getBoxConstraints(SliverConstraints constraints) { return(constraints.asBoxConstraints( minExtent: this.mainAxisExtent ?? 0.0f, maxExtent: this.mainAxisExtent ?? 0.0f, crossAxisExtent: this.crossAxisExtent ?? 0.0f )); }
public override SliverGridLayout getLayout(SliverConstraints constraints) { float tileWidth = (constraints.crossAxisExtent - _spacing) / 2.0f; const float tileHeight = 40.0f + 144.0f + 40.0f; return(new _ShrineGridLayout( tileWidth: tileWidth, tileHeight: tileHeight, rowStride: tileHeight + _spacing, columnStride: tileWidth + _spacing )); }
public virtual float?estimateMaxScrollOffset( SliverConstraints constraints, int firstIndex, int lastIndex, float leadingScrollOffset, float trailingScrollOffset ) { D.assert(lastIndex >= firstIndex); return(del.estimateMaxScrollOffset( firstIndex, lastIndex, leadingScrollOffset, trailingScrollOffset )); }
public override SliverGridLayout getLayout(SliverConstraints constraints) { float tileWidth = (constraints.crossAxisExtent - (material_._yearPickerColumnCount - 1) * material_._yearPickerRowSpacing) / material_._yearPickerColumnCount; return(new SliverGridRegularTileLayout( childCrossAxisExtent: tileWidth, childMainAxisExtent: material_._yearPickerRowHeight, crossAxisCount: material_._yearPickerColumnCount, crossAxisStride: tileWidth + material_._yearPickerRowSpacing, mainAxisStride: material_._yearPickerRowHeight, reverseCrossAxis: AxisUtils.axisDirectionIsReversed(constraints.crossAxisDirection) )); }
public override SliverGridLayout getLayout(SliverConstraints constraints) { const int columnCount = daysPerWeek; float tileWidth = constraints.crossAxisExtent / columnCount; float tileHeight = Mathf.Min(material_._dayPickerRowHeight, constraints.viewportMainAxisExtent / material_._maxDayPickerRowCount); return(new SliverGridRegularTileLayout( childCrossAxisExtent: tileWidth, childMainAxisExtent: tileHeight, crossAxisCount: columnCount, crossAxisStride: tileWidth, mainAxisStride: tileHeight, reverseCrossAxis: AxisUtils.axisDirectionIsReversed(constraints.crossAxisDirection) )); }
public double?estimateMaxScrollOffset( SliverConstraints constraints, int firstIndex, int lastIndex, double leadingScrollOffset, double trailingScrollOffset ) { D.assert(lastIndex >= firstIndex); return(this.del.estimateMaxScrollOffset( firstIndex, lastIndex, leadingScrollOffset, trailingScrollOffset )); }
public override float?estimateMaxScrollOffset( SliverConstraints constraints, int firstIndex, int lastIndex, float leadingScrollOffset, float trailingScrollOffset ) { return(base.estimateMaxScrollOffset( constraints, firstIndex, lastIndex, leadingScrollOffset, trailingScrollOffset ) ?? gridDelegate.getLayout(constraints) .computeMaxScrollOffset(del.estimatedChildCount ?? 0)); }
public override SliverGridLayout getLayout(SliverConstraints constraints) { D.assert(this._debugAssertIsValid()); float usableCrossAxisExtent = constraints.crossAxisExtent - this.crossAxisSpacing * (this.crossAxisCount - 1); float childCrossAxisExtent = usableCrossAxisExtent / this.crossAxisCount; float childMainAxisExtent = childCrossAxisExtent / this.childAspectRatio; return(new SliverGridRegularTileLayout( crossAxisCount: this.crossAxisCount, mainAxisStride: childMainAxisExtent + this.mainAxisSpacing, crossAxisStride: childCrossAxisExtent + this.crossAxisSpacing, childMainAxisExtent: childMainAxisExtent, childCrossAxisExtent: childCrossAxisExtent, reverseCrossAxis: AxisUtils.axisDirectionIsReversed(constraints.crossAxisDirection) )); }
public override SliverGridLayout getLayout(SliverConstraints constraints) { const int columnCount = 7; // DateTime.daysPerWeek = 7 float tileWidth = constraints.crossAxisExtent / columnCount; float tileHeight = Mathf.Min( DatePickerUtils._kDayPickerRowHeight, constraints.viewportMainAxisExtent / (DatePickerUtils._kMaxDayPickerRowCount + 1) ); return(new SliverGridRegularTileLayout( crossAxisCount: columnCount, mainAxisStride: tileHeight, crossAxisStride: tileWidth, childMainAxisExtent: tileHeight, childCrossAxisExtent: tileWidth, reverseCrossAxis: AxisUtils.axisDirectionIsReversed(constraints.crossAxisDirection) )); }
protected override void performLayout() { SliverConstraints constraints = this.constraints; D.assert(constraints.axisDirection == AxisDirection.down); D.assert(constraints.growthDirection == GrowthDirection.forward); float layoutExtent = (_hasLayoutExtent ? 1.0f : 0.0f) * _refreshIndicatorExtent; if (layoutExtent != layoutExtentOffsetCompensation) { geometry = new SliverGeometry( scrollOffsetCorrection: layoutExtent - layoutExtentOffsetCompensation ); layoutExtentOffsetCompensation = layoutExtent; } bool active = constraints.overlap <0.0 || layoutExtent> 0.0; float overscrolledExtent = constraints.overlap < 0.0f ? constraints.overlap.abs() : 0.0f; child.layout( constraints.asBoxConstraints( maxExtent: layoutExtent + overscrolledExtent ), parentUsesSize: true ); if (active) { geometry = new SliverGeometry( scrollExtent: layoutExtent, paintOrigin: -overscrolledExtent - constraints.scrollOffset, paintExtent: Mathf.Max( Mathf.Max(child.size.height, layoutExtent) - constraints.scrollOffset, 0.0f), maxPaintExtent: Mathf.Max( Mathf.Max(child.size.height, layoutExtent) - constraints.scrollOffset, 0.0f), layoutExtent: Mathf.Max(layoutExtent - constraints.scrollOffset, 0.0f)); } else { geometry = SliverGeometry.zero; } }
void _resolve() { if (_resolvedPadding != null && _lastResolvedConstraints == constraints) { return; } float paddingValue = constraints.viewportMainAxisExtent * viewportFraction; _lastResolvedConstraints = constraints; switch (constraints.axis) { case Axis.horizontal: _resolvedPadding = EdgeInsets.symmetric(horizontal: paddingValue); break; case Axis.vertical: _resolvedPadding = EdgeInsets.symmetric(vertical: paddingValue); break; } }
public abstract SliverGridLayout getLayout(SliverConstraints constraints);