2011-10-20 1 views
0

Dans mon application j'ai une liste. Je veux montrer un pop over (overlay) quand un objet est tapé. Cela fonctionne pour certains éléments, mais pour certains éléments, la superposition va directement à l'élément de la liste.Sencha pop sur la liste itemtap

Remarque: Je souhaite afficher une superposition avec une flèche pointant vers l'élément actuellement sélectionné. Voici mon code:

var overlay = new Ext.Panel({ 
     floating: true, 
     modal: true, 
     width: 100, 
     height: 100, 
     scroll: false}); 

var list = Ext.extend(Ext.List, { 

    store: myStore, 
    itemTpl: "{firstName} {lastName}", 

    listeners: { 
     itemtap: function (list, index, element, event) { 
     // Grab a reference the record. 
     var record = list.getRecord(element); 

     // First, we update the the overlay with the proper record (data binding). 
     overlay.update(record.data); 
     overlay.showBy(element, 'fade'); 
     list.doComponentLayout();   
    } 
}}); 

problème peut être que je ne reçois pas correctement l'élément de liste. Je viens d'utiliser l'élément actuel ici. J'ai aussi essayé list.getNode (index) mais ça fait la même chose. Quelqu'un peut-il me guider dans la bonne direction?

Tarun.

Répondre

2

ajouter juste false à l'émission par la fonction à savoir overlay.showBy(element, 'fade',false);

http://docs.sencha.com/touch/1-1/#!/api/Ext.Panel-method-showBy

+0

Oh! comme je suis bête .. Merci llya. –

+0

La solution a fonctionné parfaitement mais quand j'ai étendu mon panneau pour avoir des boutons dans la disposition de vbox, la taille du panneau montré réduit aléatoirement. c'est-à-dire pour certains articles, il est parfait avec un panneau de flèche et trois boutons empilés verticalement, mais pour certains articles spécialement au bas de la liste, la hauteur du panneau réduit ?? Je ne peux pas reconnaître ce comportement aléatoire. –

0

Voici mon code de panneau.

var overlay = new Ext.Panel({ 
// We'll set the image src attribute's value programmatically. 
//dock:'left', 
floating: true, 
modal: true, 
width: 138, 
height: 140, 
scroll: false, 
layout: { 
    type: 'vbox', 
    align:'center', 
    pack:'center' 
}, 
//defaults:{flex:1}, 
items:[ 
    {xtype: 'spacer'}, 
    { 
      xtype: 'button', 
      ui:'action', 
      height:30, 
      width:103, 
      id: 'profileButton', 
      text: 'Profile' 
    }, 
    {xtype: 'spacer'}, 
    { 
     xtype: 'button', 
     ui:'action', 
     height:30, 
     width:103, 
     id: 'positionsButton', 
     text: 'Positions' 
    }, 
    {xtype: 'spacer'}, 
    { 
     xtype: 'button', 
     ui:'action', 
     height:30, 
     width:103, 
     id: 'actionButton', 
     text: 'Action' 
    }, 
    {xtype: 'spacer'} 
]}); 
Questions connexes