View Full Version : viewport

30 Jun 2009, 12:54 AM

i m using same code as in example

i have changed viewport layout to 'fit' from 'border'
this is the only change i made...but after tht i ran the example..and it is givin whole screen filled up with blue colour....
can any one tell me reason?

30 Jun 2009, 4:57 AM
how about stating what you're trying to do?

1 Jul 2009, 12:18 AM
I used same demo example code and modifed it a bit according to my need...i have included grid as item in it. i read on API tht fit layout expands items automatically to fill the layout's container.
so i tried changing layout from border to fit , but its just fill ups it with color.

i tried same think in "\ext-2.2\ext-2.2\examples\layout-browser" code..i tried to change it from border to fit , but it also not givin ny error but just fillin screen with color.

plz explain.

1 Jul 2009, 1:56 AM
post your code (in code tags)

1 Jul 2009, 2:07 AM


// This is an inner body element within the Details panel created to provide a "slide in" effect
// on the panel body without affecting the body's box itself. This element is created on
// initial use and cached in this var for subsequent access.
var detailEl;

// This is the main content center region that will contain each example layout panel.
// It will be implemented as a CardLayout since it will contain multiple panels with
// only one being visible at any given time.
var contentPanel = {
id: 'content-panel',
region: 'center', // this is what makes this panel into a region within the containing layout
layout: 'card',
margins: '2 5 5 0',
activeItem: 0,
border: false,
items: [
// from basic.js:
start, absolute, accordion, anchor, border, cardTabs, cardWizard, column, fit, form, table,
// from custom.js:
rowLayout, centerLayout,
// from combination.js:
absoluteForm, tabsNestedLayouts

// Go ahead and create the TreePanel now so that we can use it below
var treePanel = new Ext.tree.TreePanel({
id: 'tree-panel',
title: 'Sample Layouts',
split: true,
height: 300,
minSize: 150,
autoScroll: true,

// tree-specific configs:
rootVisible: false,
lines: false,
singleExpand: true,
useArrows: true,

loader: new Ext.tree.TreeLoader({

root: new Ext.tree.AsyncTreeNode()

// Assign the changeLayout function to be called on tree node click.
treePanel.on('click', function(n){
var sn = this.selModel.selNode || {}; // selNode is null on initial selection
if(n.leaf && n.id != sn.id){ // ignore clicks on folders and currently selected node
Ext.getCmp('content-panel').layout.setActiveItem(n.id + '-panel');
var bd = Ext.getCmp('details-panel').body;
detailEl = bd.createChild(); //create default empty div
detailEl.hide().update(Ext.getDom(n.id+'-details').innerHTML).slideIn('l', {stopFx:true,duration:.2});

// This is the Details panel that contains the description for each example layout.
var detailsPanel = {
id: 'details-panel',
title: 'Details',
region: 'center',
bodyStyle: 'padding-bottom:15px;background:#eee;',
autoScroll: true,
html: '<p class="details-info">When you select a layout from the tree, additional details will display here.</p>'

// Finally, build the main layout once all the pieces are ready. This is also a good
// example of putting together a full-screen BorderLayout within a Viewport.
new Ext.Viewport({
layout: 'fit',
title: 'Ext Layout Browser',
items: [{
xtype: 'box',
region: 'north',
applyTo: 'header',
height: 30
layout: 'border',
id: 'layout-browser',
border: false,
margins: '2 0 5 5',
width: 275,
minSize: 100,
maxSize: 500,
items: [treePanel, detailsPanel]
renderTo: Ext.getBody()

1 Jul 2009, 2:26 AM

first things first.

fit layout only accepts one child. You have four!.

No need to set the renderTo for the ViewPort.

1 Jul 2009, 2:27 AM
if you are unsure about how to use the various layouts, see the following screencasts: