2011-11-23 34 views
1

我想添加dinamically面板项目到主面板与卡布局,最初有一个面板。 一个事件(自来水)我建立dinamically一个新的面板,我把它添加到主面板中,在这之后我尝试设置新的面板项目一样通过setActiveItem活动一个Sencha触摸2.0和iPhone:添加元素到面板动态和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的()都ok Android和与iPhone下降。有人可以告诉我什么是正确的方式来设置在iphone上dinamically添加新的活动项目?

这个问题不应该与add()函数有关,因为我可以通过在add()后面的主面板中添加的getItems()来看到新项目。

+0

One的详细信息:今天上午我已经指出,这个问题是来自动漫节的主面板。如果我删除它,setActiveItem适用于iphone。有没有人知道如何配置iphone的sencha面板滑动动画的事情? –

回答

0

通过以下代码,您可以了解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); 

希望这将帮助你实现你想要的输出...