diff --git a/packages/fineui/src/base/list/virtualgrouplist.js b/packages/fineui/src/base/list/virtualgrouplist.js index e2e0d5ddf..143c867fa 100644 --- a/packages/fineui/src/base/list/virtualgrouplist.js +++ b/packages/fineui/src/base/list/virtualgrouplist.js @@ -77,6 +77,7 @@ export class VirtualGroupList extends Widget { this.populate(newValue); }) : o.items; + this._calculateSummaryHeight(); this._populate(); this.ticking = false; this.element.scroll(() => { @@ -169,6 +170,16 @@ export class VirtualGroupList extends Widget { ); } } + + _calculateSummaryHeight() { + const o = this.options; + if (isFunction(o.rowHeight)) { + this.summaryHeight = sum(o.items, o.rowHeight); + } else { + this.summaryHeight = this._isAutoHeight() ? 0 : o.rowHeight * o.items.length; + } + } + _populate(items) { const { blockSize, rowHeight, scrollTop } = this.options; if (items && this.options.items !== items) { @@ -198,13 +209,8 @@ export class VirtualGroupList extends Widget { } _restore() { - const o = this.options; this.renderedIndex = -1; - if (isFunction(o.rowHeight)) { - this.summaryHeight = sum(o.items, o.rowHeight); - } else { - this.summaryHeight = this._isAutoHeight() ? 0 : o.rowHeight * o.items.length; - } + this._calculateSummaryHeight(); // 依赖于cache的占位元素也要初始化 this.topBlank.setHeight(0); this.bottomBlank.setHeight(0);