在開發中,我們是通過布局來完成應用介面的搭配的,通過各種布局,我們可以完成各種複雜的介面設計。而linearlayout也就是我們說的線性布局,這個比較簡單而且使用很廣泛的一種布局。下面我們通過乙個demo來對這個布局進行學習。我們先來看看效果圖吧。
然後在來看看布局檔案main_layout.xml
<這裡我們首先說一下linearlayout,線性布局有兩個方向,水平和垂直方向。分別是通過android:orientation="horizontal"和android:orientation="vertical"來控制的。這裡說乙個記憶的小技巧。因為小編英文不太好。經常忘記那個是水平那個是垂直。所以我就記住horizontal是h開頭的。這個是水平方向,那麼水平就是橫向嘛!hen,h開頭。這樣就不會記錯了。linearlayout
xmlns:android
=""xmlns:tools
=""android:layout_width
="match_parent"
android:layout_height
="match_parent"
android:orientation
="vertical"
tools:context
="com.example.linerlayoutdemo.mainactivity"
>
<
linearlayout
android:layout_width
="match_parent"
android:layout_height
="match_parent"
android:layout_weight
="1"
android:orientation
="vertical"
>
<
textview
android:layout_width
="match_parent"
android:layout_height
="0dp"
android:layout_weight
="1"
android:background
="#120ff0"
/>
<
textview
android:layout_width
="match_parent"
android:layout_height
="0dp"
android:layout_weight
="1"
android:background
="#950ff0"
/>
<
textview
android:layout_width
="match_parent"
android:layout_height
="0dp"
android:layout_weight
="1"
android:background
="@android:color/darker_gray"
/>
<
textview
android:layout_width
="match_parent"
android:layout_height
="0dp"
android:layout_weight
="1"
android:background
="#000ff0"
/>
linearlayout
>
<
linearlayout
android:layout_width
="match_parent"
android:layout_height
="match_parent"
android:layout_weight
="1"
android:orientation
="horizontal"
>
<
textview
android:layout_width
="0dp"
android:layout_height
="match_parent"
android:layout_weight
="1"
android:background
="#079ff0"
/>
<
textview
android:layout_width
="0dp"
android:layout_height
="match_parent"
android:layout_weight
="1"
android:background
="#000fca"
/>
<
textview
android:layout_width
="0dp"
android:layout_height
="match_parent"
android:layout_weight
="1"
android:background
="#000f65"
/>
<
textview
android:layout_width
="0dp"
android:layout_height
="match_parent"
android:layout_weight
="1"
android:background
="@android:color/holo_blue_bright"
/>
linearlayout
>
linearlayout
>
從這個demo的效果圖我們可以很清楚的看出,demo在乙個垂直方向的線性布局裡面分別巢狀了兩個線性布局。上面乙個是horizontal方向,下面乙個是vertical方向。
說完布局我們順便說一說這個demo的知識點。**注釋我們有說,這個demo主要兩個知識點,乙個是布局巢狀,乙個是權重分配。這裡們說一說權重。
權重,也就是對控制項設定 android:layout_weight的屬性。這個屬性的意思是分配剩餘空間。注意,是剩餘空間,所以,我們一般將控制項的寬度或者高度設定為0dp(至於是寬度還是高度就是看布局是水平還是垂直了)。這裡我先說簡單的。
比如有倆個控制項,分別設定為android:layout_weight=「1」,android:layout_weight=「2」,表示控制項分別佔螢幕的1/3和2/3,。不過這是有乙個前提的,就是建立在控制項的寬度或者高度設定為0dp的情況下。
然後我們說一下複雜的。其實也不複雜。權重是分配剩餘空間的意思就是說,權重屬性他是對螢幕剩下的空間進行分配。這就是為什麼上面我們說要將控制項的寬度或者高度設定為0dp的原因。假如說,控制項設定了寬度或者高度,那麼權重分配的公式如下:
控制項1的寬度或者高度=定義的寬度或者高度+1/3(螢幕寬度或者高度-兩個控制項的寬度或者高度之和)
控制項2的寬度或者高度=定義的寬度或者高度+2/3(螢幕寬度或者高度-兩個控制項的寬度或者高度之和)。
通過公式我們應該就明白了權重分配剩餘空間的原理了吧。
這裡我們要注意一點,假如你是在horizontal的線性布局裡面分配權重,那麼,高度不能設定為0dp。理解很簡單,水平方向的寬度因為你設定了權重,所以寬度由權重來分配。所以寬度設定為0dp系統不會報錯。但是高度沒人給他分配呀。。所以高度不能設定為0dp。在vertical布局中就反之。
線性布局LinearLayout的使用
linearlayout布局是android中常用的布局方式,是乙個viewgroup以線性方向顯示其子view元素。xmlns android xmlns tools android layout width match parent android layout height match par...
LinearLayout控制項
linearlayout是線性布局控制項,它包含的子控制項將以橫向或豎向的方式排列,按照相對位置來排列所有的widgets或者其他的containers,超過邊界時,某些控制項將缺失或消失。因此乙個垂直列表的每一行只會有乙個widget或者是container,而不管他們有多寬,而乙個水平列表將會只...
LinearLayout增加divider分割線
在android3.0及後面的版本在linearlayout裡增加了個分割線 android divider drawable shape android showdividers middle beginning end 分割線如果是那就直接使用就行,如果要使用顏色就必須使用shape來顯示,直接...