簡體   English   中英

Sencha touch 2.0和iPhone:向面板動態添加元素和setActiveItem

[英]Sencha touch 2.0 and iphone : add element to panel dynamically and setActiveItem

我試圖將一個面板項目動態地添加到具有卡布局的主面板中,該布局最初具有一個面板。 在一個事件(輕按)之后,我會動態地建立一個新面板並將其添加到主面板中,在此之后,我嘗試通過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');

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);

希望這將幫助您實現所需的輸出...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM