首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sencha触觉2 vbox与儿童身高

Sencha触觉2 vbox与儿童身高
EN

Stack Overflow用户
提问于 2016-02-03 16:56:21
回答 1查看 109关注 0票数 0

我很难理解如何在Sencha Touch 2中格式化一个vbox,我的目标是让每个孩子都达到完全的高度(flex将屏幕分成几部分)。为了保持简单,我有一个显示一个记录数据的详细视图,然后是一个与该记录相关的项列表。

现在,使用flex,每个孩子是一个设定的高度和滚动自己。我希望他们是完整的高度和父母只滚动。如果我把它拿出来,什么都不会出现。

代码语言:javascript
运行
复制
Ext.define('app.view.MainView', {
updateData : function(data) {
    var panels = this.query('panel[tpl]'),
        pLen = panels.length,
        panel;

    for ( p = 0; p < pLen; p++) {
        panel = panels[p];

        panel.setData(data);
    }

    this.callParent(arguments);
},
extend: 'Ext.Container',
xtype: 'mainView',
config: {
    layout: {
        type: 'vbox'
    },
    scrollable: true,
    title: '',
    items: [
        {
            xtype: 'panel',
            flex: 1,
            scrollable: true,
            styleHtmlContent: true,
            tpl: Ext.create('Ext.XTemplate',
                '<div class="view-top" id="view-{id}">' +
                '<div>{body}</div>' +
                '</div>')
        },
        {
            xtype: 'component',
            cls: 'dark',
            html: 'Top View'
        },
        {
            flex: 1,
            xtype: 'list',
            store: 'ViewStore',
            variableHeights: true,
            itemTpl: [
                '<div>{subject}</div>'
            ]

        }
    ]
}

});

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 21:37:22

找到了一个解决方案,为那些可能在这里着陆的人同样的问题,我将张贴解决方案。

基本上,在绘制视图之后,我必须计算每个列表元素的高度,然后将列表的id的高度设置为新的高度(注意:我必须将项目计数+5添加到总高度以容纳每个项目)。

代码语言:javascript
运行
复制
Ext.define('app.view.ViewMain', {
updateData : function(data) {
    var panels = this.query('panel[tpl]'),
        pLen = panels.length,
        panel;

    for ( p = 0; p < pLen; p++) {
        panel = panels[p];

        panel.setData(data);
    }

    this.callParent(arguments);
},
extend: 'Ext.Container',
xtype: 'viewMain',
config: {
    layout: {
        type: 'vbox',
        align: 'stretch'
    },
    scrollable: true,
    title: '',
    items: [
        {
            xtype: 'panel',
            height: 'auto',
            scrollable: null,
            styleHtmlContent: true,
            tpl: Ext.create('Ext.XTemplate',
                '<div class="guest-top" id="view-{id}">' +
                '<div>{body}</div>' +
                '</div>')
        },
        {
            xtype: 'component',
            cls: 'dark',
            html: 'Guest Panels'
        },
        {
            xtype: 'list',
            id: 'panelList',
            store: 'ViewStore',
            height: 1000,
            scrollable: false,
            variableHeights: true,
            itemTpl: [
                '<div>{subject}</div>'
            ]
        }
    ],
    listeners: {
        painted: function(element, eOpts){
            var totalHeight = 0;
            var items = Ext.getCmp('panelList').getViewItems();
            var itemsLn = items.length;
            for (i = 0; i < itemsLn; i++) {
                item = items[i];
                totalHeight = totalHeight + item.element.dom.clientHeight;
            }
            Ext.get('panelList').setHeight(totalHeight + itemsLn + 5);
        }
    }
}});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35183100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档