1. 程式人生 > >Android 四大布局總結

Android 四大布局總結

1.LinearLayout

      這個線性佈局大家都不陌生,只是這裡面會有一些誤區。

    如果LinearLayout的排列方向是horizontal,內部的控制元件就絕對不能將寬度指定為match_parent,因為這樣,一個控制元件就會將水平方向佔滿,其他的控制元件就沒法放了,vertical亦如此。

     android:layout_gravity屬性和android:gravity的區別。這個估計好多人都沒弄明白過,我這裡解釋一下。

      android:layout_gravity用於指定控制元件在佈局中的對齊方式,而android:gravity用於指定文字在控制元件中的對齊方式,但是線上性佈局中,如果方向是horizontal,那麼只有垂直方向的對齊方式才會生效,因為水平方向上的長度是不固定的,沒新增一個控制元件,水平方向上的長度會改變,所以無法指定該方向上的對齊方式,vertical相反。

     線性佈局中的android:layout_weight屬性,如果你使用了,那麼控制元件的寬度將不再由android:layout_width來決定, 把width設定為0dp是一種比較規範的寫法。

    我們還可以將一個控制元件的weight屬性設定為1,一個不設,而把寬度設定為wrap_content,那麼第二個控制元件的寬度則會按照wrap_content來計算,而第一個控制元件會佔滿螢幕所有的剩餘空間。

2.相對佈局Relativelayout

    這是一個常用的佈局,可以通過相對定位的方式讓控制元件出現在佈局的任何位置,有很多屬性供其選擇,也很容易掌握,不再贅述。

3.幀佈局FrameLayout

    這個比較簡單,沒有方便的定位方式,所有的控制元件都預設擺放在佈局的左上角。不是很常用。

 4,百分比佈局

    我今天主要總結的就是這個佈局,我12年開始學習android的時候,還沒有這個佈局。這個百分比佈局只為Framelayout和Relativelayout進行了功能擴充套件,提供了PercentFrameLayout和PercentRelativeLayout這兩個全新的佈局。

      如何使用?

      我們需要開啟app目錄下的build.gradle加入佈局庫的依賴:compile  'com.android.support:percent:24.2.1'

      我們寫一個佈局檔案

 <android.support.percent.PercentFremLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    <Button
      android:text="button"
      app:layout_widthPercent="50%"
      app:layout_heightPercent="50%"/>
 </android.support.percent.PercentFrameLayout/>
 執行一下,你就發現這個Button的寬高各站螢幕的50%,不過PercentFrameLayout還是會繼承FrameLayout的特性。

 當然還有絕對佈局AbsoluteLayout和TableLayout,這些專案中很少用到,就不講了。