2010-12-28 15 views
3

ich die formpanels zum Zentrum ausrichten müssen, so habe ich das vbox Layout, und nachdem ich es die Autoscroll verwendet nicht wie bisher arbeiten, ist der Code wie folgt:Autoscroll nicht mit vbox Layout funktioniert

Usr.VWPanel = Ext.extend(Ext.Panel, { 
     id: null, 
     rid: null, 
     closable: true, 
     autoScroll: true, 
     buttonAlign: 'center', 
     layout: { 
       type:'vbox', 
       padding:'5', 
       pack:'center', 
       align:'center' 
     }, 
     initComponent: function() { 
      Ext.apply(this, { 
       items: [ 
       { 
        xtype: 'spacer', 
        height: 16 
       }, 
       { 
        xtype: 'usr.usrform', 
        itemId: 'usr.vwpain.usrformt', 
        width: 600, 
        height: 500 
       }, 
       { 
        xtype:'spacer', 
        height: 16 
       }, 
       { 
        xtype: 'usr.loginform', 
        itemId: 'usr.vwpain.loginform', 
        width: 600 
       }, 
       { 
        xtype: 'spacer', 
        height: 16 
       }, 
       { 
        xtype: 'usr.subsform', 
        itemId: 'usr.vwpain.subsform', 
        width: 600 
       }], 
... 

PLZ beraten.

+1

Gefunden in den Sencha Foren: http://www.sencha.com/forum/archive/index.php/t-108868.html Da VBox nicht unterstützt autoScroll: True der Vorschlag ist, dass Sie verwenden Anker. Nicht sicher, wie Sie diese Zentrierung erreichen würden, obwohl ... – Hemlock

Antwort

1

Das Vbox-Layout wird niemals den Scroller anzeigen.

alt text

{ 
    xtype: 'window', 
    title: 'My Window', 
    width: 500, 
    height: 500, 
    layout: 'vbox', 
    layoutConfig: { 
     pack: 'center', 
     align: 'center' 
    }, 
    items: [ 
     { 
      xtype: 'panel', 
      title: 'My Panel', 
      anchor: '80% 100%', 
      height: 300, 
      width: 300, 
      autoScroll: true, 
      items: [ 
       { 
        xtype: 'panel', 
        html: 'this isform1', 
        height: 100 
       }, 
       { 
        xtype: 'panel', 
        html: 'this isform1', 
        height: 100 
       }, 
       { 
        xtype: 'panel', 
        html: 'this isform1', 
        height: 100 
       } 
      ] 
     } 
    ] 
} 
+0

gibt es eine Alternative, um die Paneele in der Mitte auszurichten? – mothee

+0

versuchen, Formulare in ein Autoscroll-Panel zu legen, dann fügen Sie es in ein anderes Panel mit Center-Layout oder vbox (http://dev.sencha.com/deploy/dev/examples/layout-browser/layout-browser.html -> Custorm Layout-> Center) – atian25

1

in Ihrem css Sie können Ihre My Panel Margen {0 auto} die die innerhalb des Fensters My Panel wird Zentrum. Das bedeutet, dass Sie für Ihr Fenster keine spezielle Layout-Konfiguration benötigen.

0

Ich habe einen Listener auf Resize-Ereignis hinzugefügt, um den vertikalen Bildlauf zu erhalten, wie für Vbox müssen wir Höhe bereitstellen, um Bildlauf zu erhalten, aber wenn Fenstergröße ändern ändern Scroller Höhe konstant bleiben.

Ext.define('DataConfigurations', { 
extend: 'Ext.form.Panel', 
bodyStyle: 'padding:5px 5px;', 
listeners: { 
resize: { 
    fn: function(el) { 
     this.setHeight(this.up('window').getHeight()-150); // 150 is extra for my panel coz of headers so have minus it. 
     console.log("new height = " + this.up('window').getHeight()-150); 
    } 
} 
}, 
title: "Update Data Configurations", 

Hofft diese Hilfe.