From 926e4d135c03e2c5a837dabdc7510150da6e268f Mon Sep 17 00:00:00 2001 From: Austin Date: Sun, 6 May 2018 15:52:45 -0500 Subject: [PATCH] fix(scroller): fixes gap at end of range with autosize --- .../scrolling/auto-size-virtual-scroll.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/cdk-experimental/scrolling/auto-size-virtual-scroll.ts b/src/cdk-experimental/scrolling/auto-size-virtual-scroll.ts index 66dbcf157676..ca406dbb8cd5 100644 --- a/src/cdk-experimental/scrolling/auto-size-virtual-scroll.ts +++ b/src/cdk-experimental/scrolling/auto-size-virtual-scroll.ts @@ -355,6 +355,14 @@ export class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy { private _updateTotalContentSize(renderedContentSize: number) { const viewport = this._viewport!; const renderedRange = viewport.getRenderedRange(); + + // once we hit the bottom, we need to resample our range + // based on the items in view so we don't create a gap + if (renderedRange.end === viewport.getDataLength()) { + this._averager.reset(); + this._averager.addSample(renderedRange, viewport.getDataLength()); + } + const totalSize = renderedContentSize + (viewport.getDataLength() - (renderedRange.end - renderedRange.start)) * this._averager.getAverageItemSize();