Reputation: 20940
I'm getting a layout run failure whenever I try to set a layout type override and I'm not sure what is causing it.
I have a parent view that has a tabpanel as a child item:
Ext.define('InventoryDemo.view.main.Main', {
extend: 'Ext.panel.Panel',
xtype: 'app-main',
requires: [
'Ext.plugin.Viewport',
'InventoryDemo.view.brand.Brand'
],
title: '<h1>Inventory Demo</h1>',
layout: 'border',
items:[
{
...
},
// This is the tab panel that I'm trying to add the container class to
{
xtype: 'tabpanel',
title: 'Inventories',
header: false,
region: 'center',
reference: 'inventoryTabSet'
}
]
});
And this is the view I'm trying to add as a tab to the tab panel:
Ext.define("InventoryDemo.view.inventory.list.Inventory",{
extend: "Ext.container.Container",
xtype: 'inventory',
...
closable: true,
layout:{
type: 'hbox',
align: 'stretch'
},
items:[
{
xtype: 'grid',
bind:{
store: '{inventory}'
},
listeners:{
itemclick: 'showDetails'
},
columns:[
{ text: 'Name', dataIndex: 'name', flex: 1 },
{ text: 'Price', dataIndex: 'price' },
{ text: 'Active', dataIndex: 'active' },
]
}
]
});
This works if I don't include the layout config:
layout:{
type: 'hbox',
align: 'stretch'
},
If that's left out, the view loads without issue, but when I include the hbox type I get a run fail.
I tried looking through the call stack, but honestly I'm still to green to sencha to see what's causing the error:
[E] Layout run failedlog @ ext-all-rtl-debug.js?_dc=1444523987794:8732logx @ ext-all-rtl-debug.js?_dc=1444523987794:8768Ext.apply.log.log.error @ ext-all-rtl-debug.js?_dc=1444523987794:8771Ext.define.handleFailure @ ext-all-rtl-debug.js?_dc=1444523987794:214144Ext.define.runComplete @ ext-all-rtl-debug.js?_dc=1444523987794:214616callOverrideParent @ ext-all-rtl-debug.js?_dc=1444523987794:1348Ext.Base.Base.addMembers.callParent @ ext-all-rtl-debug.js?_dc=1444523987794:11711Ext.override.runComplete @ ext-all-rtl-debug.js?_dc=1444523987794:61413Ext.define.run @ ext-all-rtl-debug.js?_dc=1444523987794:214610Ext.define.statics.flushLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61421Ext.define.statics.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61436Ext.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:66954Ext.define.notify @ ext-all-rtl-debug.js?_dc=1444523987794:92658Ext.define.onTick @ ext-all-rtl-debug.js?_dc=1444523987794:92677(anonymous function) @ ext-all-rtl-debug.js?_dc=1444523987794:6416(anonymous function) @ ext-all-rtl-debug.js?_dc=1444523987794:6606 3ext-all-rtl-debug.js?_dc=1444523987794:8732 [E] Layout run failedlog @ ext-all-rtl-debug.js?_dc=1444523987794:8732logx @ ext-all-rtl-debug.js?_dc=1444523987794:8768Ext.apply.log.log.error @ ext-all-rtl-debug.js?_dc=1444523987794:8771Ext.define.handleFailure @ ext-all-rtl-debug.js?_dc=1444523987794:214144Ext.define.runComplete @ ext-all-rtl-debug.js?_dc=1444523987794:214616callOverrideParent @ ext-all-rtl-debug.js?_dc=1444523987794:1348Ext.Base.Base.addMembers.callParent @ ext-all-rtl-debug.js?_dc=1444523987794:11711Ext.override.runComplete @ ext-all-rtl-debug.js?_dc=1444523987794:61413Ext.define.run @ ext-all-rtl-debug.js?_dc=1444523987794:214610Ext.define.statics.flushLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61421Ext.define.statics.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61436Ext.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:66954privates.statics.notify @ ext-all-rtl-debug.js?_dc=1444523987794:116731privates.statics.onTimer @ ext-all-rtl-debug.js?_dc=1444523987794:116750Ext.Function.fireHandlers @ ext-all-rtl-debug.js?_dc=1444523987794:6303
Is there something about how I have the views set up that would cause a fail when trying to use any layout type other than the default?
Upvotes: 1
Views: 2862
Reputation: 356
When layout of a container is set to hbox
, children of that container are expected to have a flex
or width
. If you specify flex
or width
for the grid
, then you will not face layout run failure.
Here is a fiddle for you: https://fiddle.sencha.com/#fiddle/v9a
Upvotes: 6