Browse Source

BI-138976 fix: 计算高度

research/test
Kobi 1 year ago
parent
commit
2a547dca1e
  1. 18
      packages/fineui/src/base/list/virtualgrouplist.js

18
packages/fineui/src/base/list/virtualgrouplist.js

@ -77,6 +77,7 @@ export class VirtualGroupList extends Widget {
this.populate(newValue); this.populate(newValue);
}) })
: o.items; : o.items;
this._calculateSummaryHeight();
this._populate(); this._populate();
this.ticking = false; this.ticking = false;
this.element.scroll(() => { 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) { _populate(items) {
const { blockSize, rowHeight, scrollTop } = this.options; const { blockSize, rowHeight, scrollTop } = this.options;
if (items && this.options.items !== items) { if (items && this.options.items !== items) {
@ -198,13 +209,8 @@ export class VirtualGroupList extends Widget {
} }
_restore() { _restore() {
const o = this.options;
this.renderedIndex = -1; this.renderedIndex = -1;
if (isFunction(o.rowHeight)) { this._calculateSummaryHeight();
this.summaryHeight = sum(o.items, o.rowHeight);
} else {
this.summaryHeight = this._isAutoHeight() ? 0 : o.rowHeight * o.items.length;
}
// 依赖于cache的占位元素也要初始化 // 依赖于cache的占位元素也要初始化
this.topBlank.setHeight(0); this.topBlank.setHeight(0);
this.bottomBlank.setHeight(0); this.bottomBlank.setHeight(0);

Loading…
Cancel
Save