This is how I got it fixed. I could not find a proper cause of the issue and hence its not a proper solution but its a simple work around that got it fixed.
To my west_panel which contained 3 inner panels, I added a listener to the "resize" event, which would forcefully re compute positions and sizes of west_panel's children. Below is the part of the code that shows my west_panel with its listener.
{
xtype: 'panel',
region: 'west',
split: true,
id: 'west_panel',
title: 'Show/Hide',
width: 300,
minWidth: 175,
maxWidth: 500,
listeners: {
resize: Ext.Function.bind(function(comp, width, height,
oldWidth, oldHeight, eOpts) {
comp.doLayout();
}, this)
},
items: [{
xtype: 'panel',
split: true,
collapsed: true,
title: 'Show/Hide by Time'
},
// other code below
// .
// .
// .
}