只是为了让你知道我发现了什么与一些进一步的挖掘身边发生的事情。我的两台PC之间的区别在于笔记本电脑具有触摸屏。这导致ExtJS添加特殊的滚动类来处理用户用他的手指滚动对话框的主体。
这是我创造的几个问题。首先,跳转到顶部是由切换活动选项卡后重置滚动器引起的。重置功能解除了一切,包括将滚动设置回顶端。有趣的是,通过切换标签页导致96个scoller被重置。我不知道为什么会出现这种情况,并且怀疑它会导致整个对话框刷新,而不仅仅是标签,我不明白为什么需要刷新。我正在寻找一种方法来阻止这种情况的发生。
我提到了上面的一些其他问题。一个是第二个标签显示为空,但带有滚动条。我们可以使用这些来查看适当的标签内容。我发现这是一个Ext JS错误。错误的是,当Ext JS激活下一个选项卡时,它将选项卡放在滚动类的外部(由x-scroll-scroller标记),而不是在其内部。这导致它感到困惑。为了解决这个问题,我在Ext.layout.container.Container类的getRenderTarget函数中添加了一些代码。以前,这简直是
getRenderTarget: function() {
return this.owner.getTargetEl();
}
我添加了一个特定的测试,看看如果第一个孩子是一个滚动条,而既然如此,返回滚动条来代替。
getRenderTarget: function() {
var me = this.owner;
if (me.body && me.body.dom.firstChild.className == 'x-scroll-scroller')
return me.body.dom.firstChild;
return me.getTargetEl();
}
选项卡控件的血统现在保持正确,我简要提及的其他奇怪的工件消失了。
因此目前的状态。我正在寻找停止refesh的方法,并会在我找到它时进行更新,但触摸屏支持绝对是flaky。
仅供参考。我正在使用Ext JS 6.1。