ExtJS 6树面板滚动不起作用

ExtJS 6 TreePanel scrolling not working

本文关键字:滚动 不起作用 ExtJS      更新时间:2023-09-26

我一直在努力使树面板可以双向滚动。这是我的代码:https://fiddle.sencha.com/#fiddle/13cb

我可以在包装面板中设置scrollable: true,但这并不能解决水平滚动的问题。此外,使用这种方法,组合框也会向上滚动。但我只想让树面板水平和垂直滚动。我怎样才能做到这一点?

提前感谢

我不确定我们是否能实现您想要的目标。但让我们试试看。

要使垂直滚动条工作,您必须在树面板上定义一个高度。到目前为止,树面板会根据其内容的高度动态调整大小,因为没有为其定义高度。由于即使是父面板也没有定义高度,因此将高度设为百分比也不起作用,但例如高度:500会起作用。如果在调整浏览器窗口的大小时需要浮动布局,请查看父面板的vboxborder布局。

为了让水平滚动条工作,你必须知道网格列是如何工作的。您没有定义列配置,这使得树面板假设您希望单个列占据树面板宽度的100%:

   if (!me.columns) {
        if (me.initialConfig.hideHeaders === undefined) {
            me.hideHeaders = true;
        }
        me.addCls(me.autoWidthCls);
        me.columns = [{ // define columns configuration with a single column
            xtype    : 'treecolumn', // the column should be a treecolumn
            text     : 'Name',
            flex     : 1, // and take up 100% of the width of the panel
            dataIndex: me.displayField // and use the displayField as 
        }];
    }

不能使列自动占据其内容所需的宽度。但是,例如,您可以监听nodeexpand和nodecollapse事件,并调用column.autoSize().