Extjs4.2佈局——Ext.container.ViewportView

先貼出官方文檔的關於此佈局的描述:「html

一個專門的容器用於可視應用領域(瀏覽器窗口).api

Viewport渲染自身到網頁的documet body區域, 並自動將本身調整到適合瀏覽器窗口的大小,在窗口大小發生改變時自動適應大小。 一個頁面中只能建立一個Viewport。瀏覽器

任何的Container容器均可以做爲一個Viewport 的子組件,開發者使用一個Viewport做爲父容器配置佈局layout, 並管理他們的大小和位置.佈局

Viewports通常使用border layout佈局, 若是開發者須要的佈局很簡單,能夠指定一個簡單佈局。spa

例如, 只是簡單的把單個子項,填補整個父容器的空間, 只要使用 fit layout佈局.code

幾個子項在一個父容器中,要顯示全尺寸顯示其中一個「激活」的子項,使用 card layout佈局.orm

全部的內部佈局能夠經過Panel 添加到Viewport,或者經過配置items,或者經過添加 add 方法添加panels,這些子組件自己可能就存在自身的佈局方式.htm

The Viewport自己不提供滾動條,因此若是內部的子面板要實現滾動條, 須要配置autoScroll屬性.blog

開發

下面演示官方給出的示例:

Ext.create('Ext.container.Viewport', {
    layout: 'border',
    items: [{
        region: 'north',
        html: '<h1 class="x-panel-header">Page Title</h1>',
        border: false,
        margins: '0 0 5 0'
    }, {
        region: 'west',
        collapsible: true,
        title: 'Navigation',
        width: 150
        // could use a TreePanel or AccordionLayout for navigational items
    }, {
        region: 'south',
        title: 'South Panel',
        collapsible: true,
        html: 'Information goes here',
        split: true,
        height: 100,
        minHeight: 100
    }, {
        region: 'east',
        title: 'East Panel',
        collapsible: true,
        split: true,
        width: 150
    }, {
        region: 'center',
        xtype: 'tabpanel', // TabPanel itself has no title
        activeTab: 0,      // First tab active by default
        items: {
            title: 'Default Tab',
            html: 'The first tab\'s content. Others may be added dynamically'
        }
    }]
});

這裏須要說明幾點:

1.因爲ViewportView是自動填充整個頁面的佈局方式,所以設置height(高度)無效;

2.itmes:上面的示例沒有指定子組件的xtype,那麼子組件的xtype是什麼呢?API上給出了答案:

原來默認添加的子組件是panel。

3.region:此屬性定義了子組件的方位。如Ext.panel.Panel的api所示:

能夠看出此屬性用於在border佈局中指定panel所處方位。

 

運行效果

相關文章
相關標籤/搜索