2012-04-30 3 views
6

レイアウトをメインパネルにvboxに設定しました。パネルに別々のリストを2つ追加したいと思います。私は、2つのリストを縦に積み重ねて表示し、それらがメインパネルの下をオーバーフローするので、パネルをスクロールするだけです。VBOXレイアウトでSencha Touchのリスト表示を行うにはどうしたらいいですか?

ただし、リストを表示するには、FITレイアウトでリストを設定する必要があるようです。フィットレイアウトではアイテムを垂直に積み重ねることはできません。

vboxレイアウトの親の中に自分自身を完全に表示するようにリストに指示するレイアウトシステムの機能がありませんか?

答えて

3

Ext.ListコンポーネントのスーパークラスはExt.DataViewであり、Ext.Panelではありません。

したがって、2つの別々のパネルに2つのリストを追加し、それらの2つのパネルをスーパーパネル内に追加する必要があります。
また、あなたはここで、あなたがそれを行うことができる方法だ他の二つの子パネル

ためsuperpanelためlayout:'vbox'を作り、layout:'fit'を行う必要があります。

.... 
.... 
var superpanel = new Ext.Panel({ 
    fullscreen: true, 
    layout: 'vbox',    // to vertically stack two list. 
    items: [ 
     { 
      xtype: 'panel', 
      id: 'panel_1', 
      width: '100%', 
      layout: 'fit', 
      items: [ 
       { 
        xtype: 'list', 
        flex:1, 
        id: 'list1', 
        store: 'samplestore1' 
       } 
      ] 
     }, 
     { 
      xtype: 'panel', 
      id: 'panel_2', 
      width: '100%', 
      layout: 'fit', 
      items: [ 
       { 
        xtype: 'list', 
        id: 'list2', 
        flex:1, 
        store: 'samplestore2' 
       } 
      ] 
     } 
    ] 
}); 
.... 
.... 
+2

の「オート」私はあなたが巣にラッパーパネル内の各リストを必要としないと思います。私は、スクロール可能なリストをvboxコンテナのファーストクラスの子として喜んで置いています。 vboxを使用している場合は、ドッキングされていない限り、各子供のフレックスの値が必要です。 – bradgonesurfing

+0

ああ!私はその財産を逃した。 'flex'を適用することで、両方のリストが等しいスペースを得るのに役立ちます。 –

+1

これを二重チェックしますが、フレックスの解決策によって各リストが親の高さのちょうど半分を占めると思います。 (各リスト内でスクロールするためにリストアイテムを残す)。私は各リストをスクロールしないようにしたいと思います。私は、親パネルが両方の子リストをvboxの子としてスクロールしたい。 (またはあなたのソリューションはこれを行いますか?) – Paul

1
var parent = new Ext.Panel({ 
    fullscreen: true, 
    layout: 'vbox', 
    items: [ 
     { 
      xtype: 'list', 
      id: 'list_1', 
      store: 'store1, 
      flex: 1 
     }, 
     { 
      xtype: 'list', 
      id: 'list_2', 
      store: 'store2, 
      flex: 1 
     } 
    ] 
}); 
0

プット高さ:リスト項目

items: [ 
    { 
     xtype: 'list', 
     height: 'auto' 
    }, 
    { 
     xtype: 'list', 
     height: 'auto', 
    } 
] 
関連する問題