你如果對st的元件有了一些認識後,然後你又想做一些東東來體驗下st。拿到設計圖後,那麼你就需要好好的規劃你的應用,需要哪些元件,各元件都應該擺放在**?
這個時候你就需要了解一下st裡面的布局(layout)
同樣,開啟我們的api文當
找到layout,並展開,
我們可以看到st為我們提供了:vbox,hbox,card,fit
有人肯定會問還有abstractbox,和default
abstractbox(抽象盒子)是vbox和hbox的父類,是default的子類,
default(預設)提所有布局的基類,一般不需要提交
所以常用的只有vbox,hbox,card,fit
我在此特別宣告一下:所有的布局方式都是應用於(容器的)子元件的擺放上面,比如:乙個廚房,廚房裡面很多東西,如何擺放你必須告訴廚房,而不是告訴桌子或凳子。
下面我們就一一介紹下嘍!
vbox:垂直擺放盒子
hobx:水平擺放盒子
card:卡片式存放
fit:填充式存放
先從字面意思上去理解一下
vbox:
就是將容器內部的所有項(item),垂直方式擺放。
看圖:
**:
//在乙個全屏的容器中,我們放了四個子項,第一項佔了乙份看**備註。ext.create('ext.container', ,,,
]});
我們在乙個全屏的容器,放了四個item,我們又採用了vbox,意味著,我們將需要把這些項垂直擺放。
有人會問了,那如何去確定某一項佔多少位置(高度)呢?
恩,我們確實需要告訴這個容器,各子項需要多少位置才能放得下,在這我們應用了flex(份數),通過flex去請求容器給它對應的空間。
容器在這種布局會彙總所有子項的flex總數。然後平分,在這我們flex總數是4,那就意味著,我們這個全容器將分成4分,每個子項的flex都是1,說明他們都只點了乙份了(平均分配了!)
在圖上,你可以看出,他們的高度都相等的哦。
你可以把上面的**複製到我們的code editor中去檢視他的效果,然後改變各項的 flex去體驗容器是怎麼分配空間的。
又有人會問了,flex無法確定我的實際高度?
恩,確實,這裡我們還有乙個利器 height,我們可以通過設定某乙個子項的height告訴容器它需要審請多少高度。
如:
//在乙個全屏的容器中,我們放了四個子項,第一項佔了150的高度,然後將容器的剩餘高度分成了三份,每項佔乙份效果:ext.create('ext.container', ,,,
]});
注意看**備註,或許已經明白了?
vbox是作於垂直方向的,用來分配窗器高度的。
那麼hobx就很明顯了,他是平分容器寬度的。
我們把上述**的layout改為hbox,看看效果。
**:
//在乙個全屏的容器中,我們放了四個子項,第一項佔了150的寬度,然後將容器的剩餘高度分成了三份,每項佔乙份同樣看備註,你或許能夠明白了vbox和hbox的區別與作用了?不明白的,速度加入我們的社群或群:13453484ext.create('ext.container', ,,,
]});
下面我們一搞個vbox和hbox結合的例子
**:
//在乙個全屏的容器中,我們放了四個子項,將容器的剩餘高度分成了四份,每項佔乙份效果:ext.create('ext.container', ,]},,
,]});
至此,你會用了沒,理解了沒?不會的,不理解的,就code editor裡面多多練習,多多體會哈。這很重要哦......
下面,我們來講fit,card。
fit是用來將子項整個填充至容器中,意思就是視窗有多子,那麼他下面的子項就有多大了。
用例項說話:
//建立乙個300*200的容器,裡面放了乙個子項,並指定這個容器的layout為fit布局效果:var container= ext.create('ext.container',
});//將container新增到我們的st應用的頂層容器中,ext.viewport是乙個全域性容器,無需定義,它指向的是你應用的最頂層。
ext.viewport.add(container);
那麼card布局是怎樣的呢,他其實和fit相似,只是他可以有多層,就像卡放一樣疊起來放在容器中。
照樣用例項說話:
//建立乙個全屏的容器,在裡面放了四項,容器的layout為card效果:var container= ext.create('ext.container', ,,,
]});//預設我們會顯示第一項,因採用card布局,我們可以指定將第三項顯示出來(下標從0開始)
container.setactiveitem(2);
//看備註,明白了麼?很簡單,card布局內的東西就是把它一層層堆在裡面,要顯示哪一層的時候,只需要呼叫容器的setactiveitem
card在一次顯示上,只會顯示乙個子項,而其它的子項將是不可見的。
就上面的例子,我們把layout的card改為fit
你再看效果:
即便是我們調和了setactiveitem容器也是把四個項都顯示出來的,很亂?
現在明白fit和card的區別了吧
如果容器中只一項,且需要填充顯示的時候你可以用fit,如果有多項且需要分層靈活顯示,那麼你就需要用card了。
至此,我們的布局全部講完了,學習還得靠自己哈,多多練習,就在我們的code editor裡面,每種布局你都需要玩熟哦。
學習中有不明白的,速度加入我們的社群或群:13453484
Sencha Touch 入門指導
b sencha touch 入門指導 b 1.介紹sencha touch 是乙個js框架.用於建立在基於觸控裝置的web應用.它使用html,css來提供和本地應用一樣效果的體驗,而不需要外掛程式.2.使用sencha touch url 建立html index.html 引入css ext ...
Sencha Touch 歷史支援
上述功能綜述之,就是為了更好地與原生程式相貼近,務求達到無差別的使用者體驗 這一點,尤其體現在能夠提供 返回鍵 的 android 機器上面。設定路由器 setting up routes 為你的應用安排的歷史記錄可以說一點都不困難,主要集中在如何理解的路由器 routes 的概念之上。路由器,簡言...
Sencha Touch元件選擇器
在開發的過程中,經常會碰到需要呼叫已建立的元件的情況。一般情況下,可以用ext.getcmp 方法達到這一目的。這個方法是ext.componentmanager的get方法的快捷方式,呼叫ext.getcmp 方法實際就是間接呼叫了ext.componentmanager.get 方法。ad ge...