void _paintThumb( double before, double inside, double after, double viewport, Canvas canvas, Size size, painterDelegate painter ) { double thumbExtent = Math.Min(viewport, this.minOverscrollLength); if (before + inside + after > 0.0) { double fractionVisible = inside / (before + inside + after); thumbExtent = Math.Max( thumbExtent, viewport * fractionVisible - 2 * this.mainAxisMargin ); if (before != 0.0 && after != 0.0) { thumbExtent = Math.Max( this.minLength, thumbExtent ); } else { thumbExtent = Math.Max( thumbExtent, this.minLength * (((inside / viewport) - 0.8) / 0.2) ); } } double fractionPast = before / (before + after); double thumbOffset = (before + after > 0.0) ? fractionPast * (viewport - thumbExtent - 2 * this.mainAxisMargin) + this.mainAxisMargin : this.mainAxisMargin; painter(canvas, size, thumbOffset, thumbExtent); }
void _paintThumb( float before, float inside, float after, float viewport, Canvas canvas, Size size, painterDelegate painter ) { float thumbExtent = Mathf.Min(viewport, this.minOverscrollLength); if (before + inside + after > 0.0) { float fractionVisible = inside / (before + inside + after); thumbExtent = Mathf.Max( thumbExtent, viewport * fractionVisible - 2 * this.mainAxisMargin ); if (before != 0.0 && after != 0.0) { thumbExtent = Mathf.Max( this.minLength, thumbExtent ); } else { thumbExtent = Mathf.Max( thumbExtent, this.minLength * (((inside / viewport) - 0.8f) / 0.2f) ); } float fractionPast = before / (before + after); float thumbOffset = (before + after > 0.0) ? fractionPast * (viewport - thumbExtent - 2 * this.mainAxisMargin) + this.mainAxisMargin : this.mainAxisMargin; painter(canvas, size, thumbOffset, thumbExtent); } }