1. 程式人生 > >Android中的android:layout_width和android:width

Android中的android:layout_width和android:width

android:width 其實是定義控制元件上面的文字(TextView) 的寬度,當然這個寬度也是和 android:layout_width 配合起來作用的,如果 android:layout_width="fill_parent" 的話,那麼設定 android:width 是沒有意義的


android:layout_width 其實是可以實現 android:width 的效果的,我覺得這應該是為什麼在 android 例項中看不到有人用 android:width 的原因吧。


若還要講講兩者的區別的話,那就是:
android:width 的值,一般是 "100dp" 這樣的數值;
android:layout_width 的值,一般是"fill_parent","wrap_content","match_parent".當然,它也可以像前者一樣,設定數值的.


帶"layout"的屬性是指整個控制元件而言的,是與父控制元件之間的關係,如 layout_gravity 在父控制元件中的對齊方式, layout_margin 是級別相同的控制元件之間的間隙等等;

不帶"layout" 的屬性是指控制元件中文字的格式,如gravity是指文字的對齊方式等等,而其中文字的格式又受制約於它的控制元件在父控制元件中的屬性. 

借用一位大牛的示例:http://zhangcong170.iteye.com/blog/423173

  • <?xmlversion="1.0"encoding="utf-8"?>
  • <!--     
  •     <LinearLayout
    >
  •     線性版面配置,在這個標籤中,所有元件都是按由上到下的排隊排成的    
  •  -->
  • <LinearLayout
  •     xmlns:android="http://schemas.android.com/apk/res/android"
  •     android:orientation="vertical"
  •     android:layout_width="fill_parent"
  •     android:layout_height="fill_parent">
  •    <!-- android:orientation="vertical" 表示豎直方式對齊    
  •         android:orientation
    ="horizontal"表示水平方式對齊    
  •         android:layout_width="fill_parent"定義當前檢視在螢幕上 可以消費的寬度,fill_parent即填充整個螢幕。    
  •         android:layout_height="wrap_content":隨著文字欄位的不同 而改變這個檢視的寬度或者高度。有點自動設定框度或者高度的意思    
  •         layout_weight 用於給一個線性佈局中的諸多檢視的重要度賦值。    
  •         所有的檢視都有一個layout_weight值,預設為零,意思是需要顯示    
  •         多大的檢視就佔據多大的螢幕空 間。若賦一個高於零的值,則將父視    
  •         圖中的可用空間分割,分割大小具體取決於每一個檢視的layout_weight    
  •         值以及該值在當前屏幕布局的整體 layout_weight值和在其它檢視屏幕布    
  •         局的layout_weight值中所佔的比率而定。    
  •         舉個例子:比如說我們在 水平方向上有一個文字標籤和兩個文字編輯元素。    
  •         該文字標籤並無指定layout_weight值,所以它將佔據需要提供的最少空間。    
  •         如果兩個文字編輯元素每一個的layout_weight值都設定為1,則兩者平分    
  •         在父檢視佈局剩餘的寬度(因為我們宣告這兩者的重要度相等)。如果兩個     
  •         文字編輯元素其中第一個的layout_weight值設定為1,而第二個的設定為2,    
  •         則剩餘空間的三分之二分給第一個,三分之一分給第二個(數值越小,重要    
  •         度越高)。    
  •     -->
  •     <LinearLayout
  •     android:orientation="horizontal"
  •     android:layout_width="fill_parent"
  •     android:layout_height="fill_parent"
  •     android:layout_weight="1">
  •     <TextView
  •         android:text="red"
  •         android:gravity="center_horizontal"
  •         android:background="#aa0000"
  •         android:layout_width="wrap_content"
  •         android:layout_height="fill_parent"
  •         android:layout_weight="1"/>
  •     <TextView
  •         android:text="green"
  •         android:gravity="center_horizontal"
  •         android:background="#00aa00"
  •         android:layout_width="wrap_content"
  •         android:layout_height="fill_parent"
  •         android:layout_weight="1"/>
  •     <TextView
  •         android:text="blue"
  •         android:gravity="center_horizontal"
  •         android:background="#0000aa"
  •         android:layout_width="wrap_content"
  •         android:layout_height="fill_parent"
  •         android:layout_weight="1"/>
  •     <TextView
  •         android:text="yellow"
  •         android:gravity="center_horizontal"
  •         android:background="#aaaa00"
  •         android:layout_width="wrap_content"
  •         android:layout_height="fill_parent"
  •         android:layout_weight="1"/>
  •     </LinearLayout>
  •     <LinearLayout
  •     android:orientation="vertical"
  •     android:layout_width="fill_parent"
  •     android:layout_height="fill_parent"
  •     android:layout_weight="2">
  •     <TextView
  •         android:text="row one"
  •         android:textSize="15pt"
  •         android:layout_width="fill_parent"
  •         android:layout_height="wrap_content"
  •         android:layout_weight="1"/>
  •     <TextView
  •         android:text="row two"
  •         android:textSize="15pt"
  •         android:layout_width="fill_parent"
  •         android:layout_height="wrap_content"
  •         android:layout_weight="1"/>
  •     <TextView
  •         android:text="row three"
  •         android:textSize="15pt"
  •         android:layout_width="fill_parent"
  •         android:layout_height="wrap_content"
  •         android:layout_weight="1"/>
  •     <TextView
  •         android:text="row four"
  •         android:textSize="15pt"
  •         android:layout_width="fill_parent"
  •         android:layout_height="wrap_content"
  •         android:layout_weight="1"/>
  •     </LinearLayout>
  • </LinearLayout>