2012-07-12 13 views
5

Próbuję napisać prosty widok z listą na kontenerze, ale mam pewne problemy. Przede wszystkim Lista nie jest widoczne, gdy staram się robić to tak:Sencha Touch 2 list jest niewidoczny w kontenerze

Ext.define('App.view.News', { 
    extend: 'Ext.Container', 

ale gdy jest napisane tak:

Ext.define('App.view.News', { 
    extend: 'Ext.navigation.View', 

to działa.

Problem polega na tym, że gdy piszę to z rozszerzeniem nawigacji.View, otrzymuję dwa paski narzędzi na górze i nie mogę znaleźć rozwiązania, aby wyłączyć drugie (dodane przez listę).

Pełny kod:

Ext.define('App.view.News', { 
    extend: 'Ext.Container', //Ext.navigation.View 
    xtype: 'news', 
    requires: [ 
     'Ext.dataview.List', 
     'Ext.data.proxy.JsonP', 
     'Ext.data.Store' 
    ], 
    config: { 
     style: ' background-color:white;', 

     items: 
     [ 
      { 
       xtype: 'toolbar', 
       docked: 'top', 
       title: 'News', 
       minHeight: '60px', 
       items: [ 
        { 
         ui: 'back', 
         xtype: 'button', 
         id: 'backButton', 
         text: 'Back', 
        }, 

        { 
         minHeight: '60px', 
         right: '5px', 
         html: ['<img src="resources/images/Image.png"/ style="height: 100%; ">',].join(""), 
        }, 
       ],   
      }, 

      { 
       xtype: 'list', 
       itemTpl: '{title},{author}', 
       store: { 
        autoLoad: true, 
        fields : ['title', 'author'], 
        proxy: { 
         type: 'jsonp', 
         url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http://feeds.feedburner.com/SenchaBlog', 
         reader: { 
          type: 'json', 
          rootProperty: 'responseData.feed.entries' 
         } 
        } 
       } 
      } 
     ] 
    } 
}); 

Pomóżcie proszę!

Odpowiedz

10

Musisz podać swojemu kontenerowi układ i swoją listę właściwości flex. Flex jest ważny na listach, ponieważ nie mają widocznej wysokości od momentu przewijania. Dodałem kilka właściwości do twojego kodu poniżej. Mam nadzieję że to pomoże.

Ext.define('App.view.News', { 
    extend: 'Ext.Container', //Ext.navigation.View 
    xtype: 'news', 
    requires: [ 
     'Ext.dataview.List', 
     'Ext.data.proxy.JsonP', 
     'Ext.data.Store' 
    ], 
    config: { 
     style: ' background-color:white;', 
     layout: 'vbox', // add a layout 
     items: 
     [ 
      { 
       xtype: 'toolbar', 
       docked: 'top', 
       title: 'News', 
       minHeight: '60px', 
       items: [ 
        { 
         ui: 'back', 
         xtype: 'button', 
         id: 'backButton', 
         text: 'Back', 
        }, 

        { 
         minHeight: '60px', 
         right: '5px', 
         html: ['<img src="resources/images/Image.png"/ style="height: 100%; ">',].join(""), 
        }, 
       ],   
      }, 

      { 
       xtype: 'list', 
       itemTpl: '{title},{author}', 
       flex: 1, // add a flex property 
       store: { 
        autoLoad: true, 
        fields : ['title', 'author'], 
        proxy: { 
         type: 'jsonp', 
         url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http://feeds.feedburner.com/SenchaBlog', 
         reader: { 
          type: 'json', 
          rootProperty: 'responseData.feed.entries' 
         } 
        } 
       } 
      } 
     ] 
    } 
}); 
+0

Tego właśnie chciałem. Dziękuję bardzo! – kmb

+0

Och, człowieku, uratowałeś mi życie! Cholerny flex ... Zacząłem się denerwować po tej głupiej liście! : P – Olivier

+0

tylko zwrócił 3h, ustalając to. Musiałem ustawić układ kontenera na "dopasowany". Dzięki! – Lucian