Android中的android:layout_width和android:width
阿新 • • 發佈:2019-01-29
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
- 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>