Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 線性布局LinearLayout的那些事兒

線性布局LinearLayout的那些事兒

編輯:關於Android編程

(一)LinearLayout常用屬性
1. orientation —–布局組件中的排列方式,有水平(horizontal),垂直(vertical 默認);
2. gravity——-控制組件所包含的子元素的對齊方式,可多個組合,如:(left | buttom);
3. layout_gravity——-控制該組件在父容器中的對齊方式;
4. layout_width——–布局的寬度,通常不直接寫數字,用wrap_content(組實際大小),match_parent填滿父容器;
5. layout_height——-布局的高度 ,參數同上;
6. id—-為該組件設置一個資源ID, 在java中可以通過findViewByID(id)找到該組件;
7. background ——為該組件設置一個背景圖片,或者直接用顏色覆蓋;

注意:gravity和layout_gravity的區別
android:gravity與android:layout_gravity。
他們的區別在於:android:gravity用於設置View組件的對齊方式,而android:layout_gravity用於設置Container(容器)組件的對齊方式

(二)android:layout_weight權重的描述 (用於屏幕適配的問題)

概述
layout_weight 用於給一個線性布局中的諸多視圖的重要度賦值。 所有的視圖都有一個layout_weight值,默認為零,意思是需要顯示 多大的視圖就占據多大的屏幕空 間。
若賦一個高於零的值,則將父視圖中的可用空間分割,分割大小具體取決於每一個視圖的layout_weight 值以及該值在當前屏幕布局的整體 layout_weight值和在其它視圖屏幕布局的layout_weight值中所占的比率而定。

layout_weight屬性詳解
1)最簡單的使用方法:
如圖:

\

代碼如下:




    

    
    

    
    

說明:就跟開始的概述中說的那樣,手機屏幕中的layout_width (or layout_height)的默認值為0dp,即需要顯示多大的視圖就占據多大的屏幕空間。那麼,當你設置layout_weight的權重屬性後,視圖(View)將按照該比例來進行分配LinearLayout基於的空白空間,當然,權重也會受到LinearLayout布局的影響,比如:水平,垂直;

2)難道我的layout_width or layout_height必須設置為0dp才可使用weight權重嗎?答案當然是否定的!
No.1 :當我的layout_width or layout_height的值均為wrap_content ,布局為水平(當你將布局改為垂直時試試,是不是看不到“3”了,下面我會告訴你~~);
如圖:
這裡寫圖片描述
代碼如下:




    

    
    

    
    

    
    

No.2 :當將上面代碼中的layout_width or layout_height的值均為match_parent時,同樣是水平布局時,如下圖:

這裡寫圖片描述

納尼?老3去哪裡了?我明明是1:2:3的權重呀~怎麼變成2:1:0了?
說明:網上給出了一種一種解釋
1)每個都是match_parent ,可是屏幕只有一個,那麼,可供分配的空間就變成了這樣,1-3=-2*match_parent
2)依次所占的比例為:1/6 ,2/6,3/6
3)
先到先得,分給1的空間:1-2*(1/6 )=2/3match_parent;
分給2的空間:1-2*(2/6 )=(1/3)match_parent;
分給3的空間:1-2*(3/6 )=0 match_parent;
4)所以,1占2份,2占1份,3什麼也沒有,也就會出現上面的View了;

No3: 如何在Java代碼中設置我的Weight權重呢?

SetLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT ,
LayoutParams.WRAP_PARENT , **3**));//就是那個“3”呀!

3)如何為LinearLayout 設置分割線?

對於這種線我們通常有倆種做法:

No1:我們可以在布局中直接添加一個View,這個View的作用僅僅是顯示一條黑線,非常簡單,如下圖:

這裡寫圖片描述

代碼如下:




    

    
    

    

        
    

注:當然,background屬性也可以是一張黑線圖片;

No2: 使用LinearLayout的divider屬性也同樣可以實現,直接設置LinearLayout的分割線,你需要准備一條黑線圖片;

像這樣:

這裡寫圖片描述

代碼如下:








(三)LinearLayout的簡單用法:
如下圖:
這裡寫圖片描述

實現代碼:



    

        
    
    

    

注:
這裡寫圖片描述

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved