@@ -94,27 +94,24 @@ export class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy {
94
94
this . _viewport = null ;
95
95
}
96
96
97
- /** Called when the viewport is scrolled . */
97
+ /** Implemented as part of VirtualScrollStrategy . */
98
98
onContentScrolled ( ) {
99
99
if ( this . _viewport ) {
100
100
this . _renderContentForOffset ( this . _viewport . measureScrollOffset ( ) ) ;
101
101
}
102
102
}
103
103
104
- /** Called when the length of the data changes . */
104
+ /** Implemented as part of VirtualScrollStrategy . */
105
105
onDataLengthChanged ( ) {
106
106
if ( this . _viewport ) {
107
107
this . _renderContentForOffset ( this . _viewport . measureScrollOffset ( ) ) ;
108
108
}
109
109
}
110
110
111
- /** Called when the range of items rendered in the DOM has changed . */
111
+ /** Implemented as part of VirtualScrollStrategy . */
112
112
onContentRendered ( ) {
113
113
if ( this . _viewport ) {
114
- const renderedContentSize = this . _viewport . measureRenderedContentSize ( ) ;
115
- this . _averager . addSample (
116
- this . _viewport . getRenderedRange ( ) , renderedContentSize ) ;
117
- this . _updateTotalContentSize ( renderedContentSize ) ;
114
+ this . _checkRenderedContentSize ( ) ;
118
115
}
119
116
}
120
117
@@ -129,6 +126,17 @@ export class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy {
129
126
this . _addBufferPx = addBufferPx ;
130
127
}
131
128
129
+ /**
130
+ * Checks the size of the currently rendered content and uses it tp update the estimated item size
131
+ * and estimated total content size.
132
+ */
133
+ private _checkRenderedContentSize ( ) {
134
+ const viewport = this . _viewport ! ;
135
+ const renderedContentSize = viewport . measureRenderedContentSize ( ) ;
136
+ this . _averager . addSample ( viewport . getRenderedRange ( ) , renderedContentSize ) ;
137
+ this . _updateTotalContentSize ( renderedContentSize ) ;
138
+ }
139
+
132
140
/**
133
141
* Render the content that we estimate should be shown for the given scroll offset.
134
142
* Note: must not be called if `this._viewport` is null
@@ -186,7 +194,7 @@ export class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy {
186
194
}
187
195
188
196
/** Update the viewport's total content size. */
189
- private _updateTotalContentSize ( renderedContentSize ) {
197
+ private _updateTotalContentSize ( renderedContentSize : number ) {
190
198
const viewport = this . _viewport ! ;
191
199
const renderedRange = viewport . getRenderedRange ( ) ;
192
200
const totalSize = renderedContentSize +
0 commit comments