【发布时间】:2012-04-30 04:54:16
【问题描述】:
我有一个布局设置为 vbox 的主面板。我想在面板中添加两个单独的列表。我希望这两个列表垂直堆叠显示,并且当它们溢出主面板的底部时,面板应该简单地滚动。
但是,列表似乎需要在 FIT 布局中设置才能显示。适合布局不允许垂直堆叠项目。
我是否缺少布局系统的一项功能,该功能允许我告诉列表在具有 vbox 布局的父项中完全显示自己?
【问题讨论】:
标签: sencha-touch
我有一个布局设置为 vbox 的主面板。我想在面板中添加两个单独的列表。我希望这两个列表垂直堆叠显示,并且当它们溢出主面板的底部时,面板应该简单地滚动。
但是,列表似乎需要在 FIT 布局中设置才能显示。适合布局不允许垂直堆叠项目。
我是否缺少布局系统的一项功能,该功能允许我告诉列表在具有 vbox 布局的父项中完全显示自己?
【问题讨论】:
标签: sencha-touch
Ext.List 组件的超类是Ext.DataView 而不是Ext.Panel。
因此,您需要在两个单独的面板中添加两个列表,并将这两个面板添加到一个超级面板中。
此外,您需要为超级面板制作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'
}
]
}
]
});
....
....
【讨论】:
flex 将有助于列表获得相等的空间...
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
}
]
});
【讨论】:
将 height:'auto' 放在列表项上
items: [
{
xtype: 'list',
height: 'auto'
},
{
xtype: 'list',
height: 'auto',
}
]
【讨论】: