how to manage custom layouts in sencha touch 2

自作多情 提交于 2019-12-23 01:58:12

问题


Hi I'm working on the following panel:

Ext.define("GS.view.BoxesPanel", {
extend : 'Ext.dataview.component.DataItem',
xtype : 'boxesPanel',
alias : "widget.boxespanel",

config : {
    xtype : 'panel',
    layout : 'vbox',
    width : '60%',
    align : 'center',

    items : [{
        xtype : 'panel',
        flex : 2,
        layout : 'hbox',
        height : '70%',
        margin: '10 10 10 10',
        items : [{
            xtype : 'panel',
            flex : 1,
            items : []
        }, {
            xtype : 'panel',
            flex : 1,
            layout : 'vbox',
            items : []
        }, {
            xtype : 'panel',
            flex : 1,
            layout : 'vbox',
            items : []
        }]
    }, {
        xtype : 'panel',
        layout : 'hbox',
        flex : 1,
        height : '30%',
        margin: '10 10 10 10',
        items : [{
            xtype : 'panel',
            flex : 2,
            items : []
        }, {
            xtype : 'panel',
            flex : 1,
            items : []
        }]
    }]
}
});

Here is how I'm currently accessing the panels (in my controller)... :

 launch : function(app) {
    var store = Ext.data.StoreManager.lookup('boxStore');
    var boxesPanelList = Ext.ComponentQuery.query('BoxesPanelList')[0];
    var boxesPanel = Ext.create("GS.view.BoxesPanel");

    store.onAfter('load', function() {// Boxes are loaded when the store finishes  loading it's data, if not, the boxes appear empty
        Ext.each(store.getData().items, function(item, index) {// Iterates through BoxStore data objects (JSON)
            var box = Ext.create("GS.view.Box");
            box.setData({
                type : item.data.type,
                description : item.data.description,
                product : item.data.product
            });
            switch(item.data.position) {
                case "1":
                    box.setCls("product_vert");
                    boxesPanel.getItems().get(0).getItems().get(0).add(box);
                    break;
                case "2":
                    box.setCls("product_small");
                    boxesPanel.getItems().get(0).getItems().get(1).add(box);
                    break;
                case "3":
                    box.setCls("product_small");
                    boxesPanel.getItems().get(0).getItems().get(1).add(box);
                    break;
                case "4":
                    box.setCls("product_small");
                    boxesPanel.getItems().get(0).getItems().get(2).add(box);
                    break;
                case "5":
                    box.setCls("product_small");
                    boxesPanel.getItems().get(0).getItems().get(2).add(box);
                    break;
                case "6":
                    box.setCls("product_horiz");
                    boxesPanel.getItems().get(1).getItems().get(0).add(box);
                    break;
                case "7":
                    box.setCls("product_small");
                    boxesPanel.getItems().get(1).getItems().get(1).add(box);
                    boxesPanelList.add(boxesPanel);
                    boxesPanel = Ext.create("GS.view.BoxesPanel");
                    break;
            }
        });
    }, this);
}
});

Thank you very much for any information you provide.

来源:https://stackoverflow.com/questions/13633271/how-to-manage-custom-layouts-in-sencha-touch-2

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!