文/老黑
這節課開始,我們要講解一下Android的幾種頁面布局,通過頁面布局的學習,大家可以做出任意變化的頁面,而只要充分掌握了這點,基本上可以算Android入門了,同時會對自己的信心有一個顯著的提高。
上節課我們學習了幾個主要的Android控制項,而怎樣讓控制項有條不紊地擺放在頁面上,這就是布局要幹的事情了。當然,布局的內部除了放置控制項外,也可以嵌套布局,通過多層布局的嵌套,我們可以完成一些比較複雜的頁面,如圖:
好了,大概清楚布局是怎麼一回事就行了,接下來我們來看今天需要掌握的第一個布局,也是正式項目中最常用的布局—— LinearLayout。
LinearLayout又稱作線性布局,其實細心的朋友會發現,我前面寫的一些例子,基本上都是用LinearLayout布局實現的,這個布局正如名字所述,它會把其包含的控制項在線性上依次排列,可以是豎排,也可以是橫排,都可自行控制,但注意是依次,即按順序。
我們通過android:orientation屬性指定了排列方向:vertical表示讓包含的控制項豎排,horizontal表示讓包含的控制項橫排,下面我們通過實戰來體會一下,如圖:
布局豎排效果:
布局橫排效果:
這兩個例子非常簡單,只要注意android:orientation這個屬性的設置即可。
下面再來分析一個稍微複雜的頁面,LinearLayout中又嵌套了一個LinearLayout子布局,如圖:
最外面的LinearLayout設成了垂直布局,所以頁面是從上至下排列的,而嵌套的LinearLayout子布局保證了裡面包含的EditText和Button是橫排擺放的。
另外通過這個頁面,我們還發現了一個非常有用的屬性,即android:Layout_weight,這裡設置成了1,表示1:1,平分屏幕寬度。其原理也很簡單,系統會先把LinearLayout下所有控制項指定的Layout_weight值相加,得到一個總值,然後每個控制項所佔大小的比例就是用該控制項的Layout_weight值除以剛才算出的總值。
因此,如果想讓EditText佔據屏幕寬度的3/5,Button佔據屏幕寬度的2/5,只需將EditText的Layout_weight改成3,Button的Layout_weight改成2就可以了,如圖:
好了,今天的課就到這裡,內容也相對比較簡單,大家有時間可以去練習一下,相信很快就能掌握Android線性布局頁面,我們下節課再見!
網際網路老黑,每周連載,一部給非程式設計師看的APP學習教程。
微信公眾號:網際網路老黑