Sencha Touch:hbox 内的 vbox 布局问题

发布于 2024-11-14 21:10:04 字数 1140 浏览 3 评论 0原文

我将 vbox 布局放入 hbox 布局中。但 vbox 无法正常工作。代码如下:

代码:

var panel = new Ext.Panel({
    fullscreen : true,
    layout : {
        type : 'hbox',
        align : 'stretch'
    },
    items : [{
        width : 50,
        layout : {
            type : 'vbox',
            align : 'stretch'
        },
        items : [{
            flex : 1,
            html : '1st'
        }, {
            height : 50,
            html : '2nd'
        }]
    }, {
        flex : 1,
        html : 'Large'
    }]
});

这里,vbox 的 2 个面板相互重叠。如果我只创建 vbox,它就可以完美工作。这是代码:

代码:

var panel = new Ext.Panel({
    fullscreen : true,
    layout : {
        type : 'vbox',
        align : 'stretch'
    },
    items : [{
        flex : 1,
        html : '1st'
    }, {
        height : 50,
        html : '2nd'
    }]
});

我做错了什么吗?

编辑:

不知何故,我发现,如果我以这种方式交换 vbox 项目,那么它就可以工作:

...
layout : {
     type : 'vbox',
     align : 'stretch'
},
items : [{
     height : 50,
     html : '2nd'
}, {
     flex : 1,
     html : '1st'
}]
....

但是,我想要底部较小的项目。

I am putting a vbox layout inside hbox layout. But the vbox isn't working properly. Here is the code:

Code:

var panel = new Ext.Panel({
    fullscreen : true,
    layout : {
        type : 'hbox',
        align : 'stretch'
    },
    items : [{
        width : 50,
        layout : {
            type : 'vbox',
            align : 'stretch'
        },
        items : [{
            flex : 1,
            html : '1st'
        }, {
            height : 50,
            html : '2nd'
        }]
    }, {
        flex : 1,
        html : 'Large'
    }]
});

Here, the 2 panels of vbox is coming over one another. If I just create the vbox only, it works perfectly. Here is the code:

Code:

var panel = new Ext.Panel({
    fullscreen : true,
    layout : {
        type : 'vbox',
        align : 'stretch'
    },
    items : [{
        flex : 1,
        html : '1st'
    }, {
        height : 50,
        html : '2nd'
    }]
});

Am I doing anything wrong?

EDIT:

Somehow, I find, if I swap the vbox items this way, then it works:

...
layout : {
     type : 'vbox',
     align : 'stretch'
},
items : [{
     height : 50,
     html : '2nd'
}, {
     flex : 1,
     html : '1st'
}]
....

However, I want the smaller item at the bottom.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神也荒唐 2024-11-21 21:10:04

在你的 hbox 中,vbox 本身缺少 Flex 或 height 配置...

var panel = new Ext.Panel({
    fullscreen: true,
    layout: {
        type: 'hbox',
        align: 'stretch'
    },
    items: [{
        width: 50,
        flex:1, // this needs to be flexy as well
        layout: {
            type: 'vbox',
            align: 'stretch'
        },
        items: [{
            flex: 1,
            html: '1st'
        }, {
            height: 50,
            html: '2nd'
        }]
    }, {
        flex: 1,
        html: 'Large'
    }]
});

In your hbox, the vbox itself is missing a flex or height config...

var panel = new Ext.Panel({
    fullscreen: true,
    layout: {
        type: 'hbox',
        align: 'stretch'
    },
    items: [{
        width: 50,
        flex:1, // this needs to be flexy as well
        layout: {
            type: 'vbox',
            align: 'stretch'
        },
        items: [{
            flex: 1,
            html: '1st'
        }, {
            height: 50,
            html: '2nd'
        }]
    }, {
        flex: 1,
        html: 'Large'
    }]
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文