如何将面板的高度绑定到 Ext Js 中的视口高度?

Posted

技术标签:

【中文标题】如何将面板的高度绑定到 Ext Js 中的视口高度?【英文标题】:How to bind height of panel to viewport height in Ext Js? 【发布时间】:2020-08-25 23:30:18 【问题描述】:

我有兴趣在 Ext js 中自动将面板的高度设置为视口的高度。

使用监听器这很容易做到,但它似乎是对 Ext js 变量绑定的完美使用。但是,我似乎无法让它工作。

在我的主视图中,我的绑定配置是bind: height: 'viewportHeight'。在视图模型中,我有data: viewportHeight: Ext.getViewportHeight()。我用面板类的视图模型扩展了这个视图模型,并在视图中有bind: height: 'viewportHeight'

我认为这就是 Ext js 中绑定的工作方式,但 viewportHeight 设置为初始视口高度,然后从未更新。调整窗口大小不会调整面板大小。

Ext js 中的变量绑定缺少什么?

【问题讨论】:

这实际上是您进行绑定的方式吗?如果是这样,绑定需要在变量周围使用花括号......否则,您只是绑定到一个字符串。所以应该是 bind: height: 'viewportHeight' 如果这只是描述中的一个错字,你介意给我们一个 Fiddle 来显示这个问题吗? 字符串中确实有大括号。有机会我会链接小提琴。 【参考方案1】:

您不需要使用绑定。 ExtJs 有用于这些目的的布局:

Ext.create('Ext.container.Viewport', 
    //layout: 'fit',
    layout: 
        type: 'hbox',
        align : 'stretch'
    ,
    items: [
        xtype: 'panel',
        title: "Sample Panel",
        html: "Content HTML",
        width: 200,
        margin: 5
    , 
        xtype: 'panel',
        title: "Another Panel",
        html: "Content HTML",
        width: 400,
        margin: 5
    ]
);

【讨论】:

这对我不起作用。我的视口是一个带有网格面板作为选项卡的选项卡面板。网格面板扩展到其行的高度,比屏幕大。我需要标签面板的卡片布局。网格是通过滚动设置的。 嗯,好的,那么在小提琴中有一个可重现的布局样本会很好:dle.sencha.com

以上是关于如何将面板的高度绑定到 Ext Js 中的视口高度?的主要内容,如果未能解决你的问题,请参考以下文章

当网格达到一定高度时,如何将垂直滚动条添加到 ext 网格面板?

Ext JS 5 - 将网格面板添加到视口

Ext JS 网格面板高度属性

在EXT JS中 如何定义树高度使它适应屏幕高度。

ExtJS 4.1 如何更改网格面板标题高度

如何将数据对齐到视口。现在卡了一段时间