动画(滑入)新面板以替换当前面板的内容?

时间:2011-09-28 02:36:35

标签: javascript sencha-touch extjs

我正在尝试更改Ext.List的内容。我正在尝试将内容更改为新面板,但我不需要更多列表元素。

这似乎取代了内容,但我该如何设置更改动画?

onItemDisclosure: function(record, btn, index) {
    console.log('Disclose more info for ' + record.get('name'));
    var panel1 = Ext.getCmp('panel-1');
    panel1.remove(Ext.getCmp('panel-1'));
    panel1.add(Ext.getCmp('panel-2'));
    panel1.doLayout();
}

1 个答案:

答案 0 :(得分:3)

最好的方法是将panel-1panel-2作为不同面板中的项目,然后在它们之间切换。例如:

    var detailPanel = new Ext.Panel({
            fullscreen: true,
            id:'detailPanel',
            scroll:'vertical',
            tpl:'<h1>{text}</h1>'
    });

   var list = new Ext.List({
        id :'theList',
        itemTpl : '{firstName} {lastName}',
        store: store1,
        width: '100%',
        scroll:false
    });

   var panel =  new Ext.Panel({
        fullscreen: true,
        id:'thePanel',
        layout: 'card',
        cardSwitchAnimation:'slide',
        scroll:'vertical',
         items:[list, detailPanel]
    });

然后您可以像Ext.getCmp('detailPanel').update(record.data);一样更新detailPanel并切换到它。 Ext.getCmp('thePanel').setActiveItem(1,{type:'slide',direction:'left'});

setActiveItem的第二个参数是动画配置。宾语。 http://dev.sencha.com/deploy/touch/docs/?class=Ext.Panel