Sencha touch 2.0和iphone:向面板动态添加元素并设置ActiveItem

Sencha touch 2.0和iphone:向面板动态添加元素并设置ActiveItem,iphone,sencha-touch,sencha-touch-2,Iphone,Sencha Touch,Sencha Touch 2,我正在尝试将一个面板项添加到一个带有卡片布局的主面板中,该主面板最初有一个面板。 在一个事件(点击)之后,我以友好的方式构建一个新面板,并将其添加到主面板中,之后我尝试通过setActiveItem将新面板项设置为活动面板项 在Android上一切正常,但在iphone上却不行 确切地说,我有这个app.js: Ext.Loader.setConfig({enabled: true}); Ext.setup({ viewport: { autoMaximize: false }, onR

我正在尝试将一个面板项添加到一个带有卡片布局的主面板中,该主面板最初有一个面板。 在一个事件(点击)之后,我以友好的方式构建一个新面板,并将其添加到主面板中,之后我尝试通过setActiveItem将新面板项设置为活动面板项

在Android上一切正常,但在iphone上却不行

确切地说,我有这个app.js:

Ext.Loader.setConfig({enabled: true});
Ext.setup({
viewport: {
    autoMaximize: false
},
onReady: function() {
    var app = new Ext.Application({
        name: 'rpc',
        appFolder: 'app',           
        controllers: ['Home'],
        autoCreateViewport: false,
        launch: function () {
            Ext.create('Ext.Panel',{
                fullscreen: true,           
                layout: {
                    type : 'card',
                    animation:{
                        type:'slide'
                        ,duration :3000
                    }
                },
                defaults: {     /*definisce le caratteristiche di default degli elementi contenuti..??*/
                    flex: 1
                },
                items:[{
                    title: 'Compose',
                    xtype: 'griglia'
                }]
            });
        }
    });
}
});
我有一个控制器

            .....
        .....
        var grigliaPan=button.up('griglia');
        var mainPan=grigliaPan.up('panel');

        var html=
            '<img src="img/'+segnoScelto+'_big.png" />'
            +'<h1>'+segnoScelto+'</h1>'
            +'<p>'+previsione+'</p>'
            +'</br></br>';
        if (typeof mainPan.getComponent(1) == 'undefined'){
                        var previsioPan = Ext.widget('previsio');
                        previsioPan.setHtml(html);

                        //here i create a button for going home panel
                        var backButton=new Ext.Button({
                            ui  : 'decline',
                            alias: 'widget.backbutton',
                            text: 'Home Page',
                            width : 150,
                            height:100
                        })

                        previsioPan.add(backButton);
                        var it=mainPan.getItems();
                        alert (it['keys']);     //this prints : ext-griglia-1
                        mainPan.add(previsioPan);
                        var it=mainPan.getItems();
                        alert (it['keys']);     //this prints : ext-griglia-1,ext-previsio-1
                        //
        }
        mainPan.getLayout().setAnimation({type: 'slide', direction: 'left', duration:1000});
        //mainPan.setActiveItem(1);
        var pree=mainPan.getAt(1);
        //pree.show();
        //mainPan.setActiveItemm(pree);
        mainPan.setActiveItem('ext-previsio-1');
。。。。。
.....
var grigliaPan=button.up('griglia');
var mainPan=格里利亚潘上升(“面板”);
变量html=
''
+''+segnoScelto+''的
+“”+previsione+”

” +“

”; if(mainPan.getComponent(1)的类型=‘未定义’){ var previsioPan=Ext.widget('previsio'); setHtml(html); //这里我创建了一个回家面板按钮 var backButton=新建外部按钮({ 用户界面:“拒绝”, 别名:“widget.backbutton”, 文本:“主页”, 宽度:150, 身高:100 }) previsioPan.add(后退按钮); var it=mainPan.getItems(); 警报(它['keys']);//此打印:ext-griglia-1 主面板添加(previsioPan); var it=mainPan.getItems(); 警报(它['keys']);//这个打印:ext-griglia-1,ext-previsio-1 // } mainPan.getLayout().setAnimation({type:'slide',direction:'left',duration:1000}); //mainPan.setActiveItem(1); var pree=主面板的最大值(1); //pree.show(); //mainPan.setActiveItemm(pree); mainPan.setActiveItem('ext-previsio-1');
setActiveItem()的三种形式适用于Android,适用于iPhone。有人能告诉我什么是正确的方式来设置新的活动项添加到iphone上吗


问题不应该出在add()函数上,因为我可以通过在add()之后在主面板中添加的getItems()看到新项。

通过以下代码,您可以理解thisCell是在创建thisRow之后添加的

var thisRow = new Ext.Panel({ 
                 layout: { type: 'hbox', align: 'stretch', pack: 'center' },
                 id: 'row' + (rowCount + 1), 
                 defaults: { flex: 1 } 
              });

        // Now we need to add the cells to the above Panel:
var thisCell = new Ext.Panel({
             cls: 'dashboardButton',
                 layout: { type: 'vbox', align: 'center', pack: 'center' },
         items: [{
                      xtype: 'image',
                      src: 'some image url',
                      height: '70px',
                      width: '100px',
                 }]
               });
thisRow.add(thisCell);

希望这将帮助您实现所需的输出…

还有一个信息:今天早上我注意到问题来自主面板中的动画部分。如果我删除它,setActiveItem在iphone上可以正常工作。是否有人知道如何为iphone sencha面板幻灯片动画配置ok?