diff --git a/src/base/list/listview.js b/src/base/list/listview.js index c998281b9..b4a4929f8 100644 --- a/src/base/list/listview.js +++ b/src/base/list/listview.js @@ -100,6 +100,11 @@ BI.ListView = BI.inherit(BI.Widget, { }, _calculateBlocksToRender: function () { + // BI-115750 不可见状态下依赖元素实际尺寸构造的线段树会分段错误,所以不进行后续计算和线段树的初始化。 + // 这样从不可见状态变为可见状态能够重新触发线段树初始化 + if (!this.element.is(":visible")) { + return; + } this._renderMoreIf(); }, diff --git a/src/base/list/virtualgrouplist.js b/src/base/list/virtualgrouplist.js index 2db1e0765..652a48c37 100644 --- a/src/base/list/virtualgrouplist.js +++ b/src/base/list/virtualgrouplist.js @@ -110,6 +110,11 @@ BI.VirtualGroupList = BI.inherit(BI.Widget, { }, _calculateBlocksToRender: function () { + // BI-115750 不可见状态下依赖元素实际尺寸构造的线段树会分段错误,所以不进行后续计算和线段树的初始化。 + // 这样从不可见状态变为可见状态能够重新触发线段树初始化 + if (!this.element.is(":visible")) { + return; + } var o = this.options; this._isAutoHeight() && this._renderMoreIf(); var height = this.element.height(); diff --git a/src/base/list/virtuallist.js b/src/base/list/virtuallist.js index 011d53344..3985727a4 100644 --- a/src/base/list/virtuallist.js +++ b/src/base/list/virtuallist.js @@ -93,6 +93,11 @@ BI.VirtualList = BI.inherit(BI.Widget, { _calculateBlocksToRender: function () { var o = this.options; + // BI-115750 不可见状态下依赖元素实际尺寸构造的线段树会分段错误,所以不进行后续计算和线段树的初始化。 + // 这样从不可见状态变为可见状态能够重新触发线段树初始化 + if (!this.element.is(":visible")) { + return; + } this._renderMoreIf(); var height = this.element.height(); var minContentHeightFrom = o.scrollTop - o.overscanHeight;