—–本文內容全部來自於慕課網上的用戶筆記,我只是整理過來—-
使用線性佈局
http://www.imooc.com/video/1756
摘自 Joey
一、android:layout_gravity & android:gravity
區別
1、android:gravity
:決定其子類控件在該控件裏的顯示位置。
2、android:layout_gravity
:這個是針對控件本身而言,用來控制該控件在包含該控件的父控件中的位置。
Tips:
一個屬性可以包含多個值,需用“|”分開,例 android:gravity="bottom|center_horizontal"
二、子控件
1、子類控件在LinearLayout中常用到的屬性
android:layout_gravity=“bottom”
—— 指本身在當前父容器的XY的一個位置
android:layout_weight=“1”
—— 指本身控件佔當前父容器的一個比例(整型值和小數值都可以)
2、理解
當佈局中只有兩個按鈕
button1設置android:layout_weight="2"
,button2設置 android:layout_weight="1"
1.android:layout_height="wrap_content"
// 視圖:button1佔屏幕的2/3,button2佔屏幕的1/3
2.android:layout_height=“match_parent”//(相反)
// 視圖:button1佔屏幕的1/3,button2佔屏幕的2/3
一句話解釋:
在layout_width
設置為wrap_content
的時候,layout_weight
所代表的是你的控件要優先盡可能的小,但這個小是有限度的,即wrap_content
。(依據權重值正向只瓜分剩餘的空間)
在layout_width
設置為match_parent
的時候,layout_weight
所代表的是你的控件要優先盡可能的大,但這個大是有限度的,即match_parent
。(依據權重值反向瓜分所有空間)
layout_height
同 layout_width
。
Tips:佈局中可以套佈局(例:LinearLayout
可以再套LinearLayout
佈局或其他佈局)
一個orientation
爲horizontal
的LinearLayout
中有一個TextView
,則設置TextView
的gravity
屬性爲right
是不起作用的。因爲,水平的LinearLayout
要從左邊開始依次放置佈局,所以設置TextView
的gravity
屬性爲right
不起作用
相對佈局RelativeLayout
http://www.imooc.com/video/1797
摘自 安顏希
android:layout_alignParentLeft="true"//子類控件相對當前父類容器靠左邊
android:layout_alignParentTop="true"//子類控件相對父類容器靠上邊
android:layout_marginLeft="41dp"//子類控件距離父類容器左邊的距離
android:layout_marginTop="33dp"//子類控件距離父類容器上邊的距離
android:layout_centerInParent="true"//子類控件相對父類容器即水平居中又垂直居中
android:layout_centerHorizontal="true"//子類控件相對父類容器水平居中
android:layout_centerVertical="true"//子類控件相對父類容器垂直居中
android:layout_below="@+id/button1"//該控件位於給定id控件的底部
android:layout_toRightOf="@+id/button1"//該控件位於給定id控件的右邊
android:layout_above="@+id/button1"//該控件位於給定id控件的上面
android:layout_toLeftOf="@+id/button1"//該控件位於給定id控件的左邊
android:layout_alignBaseline="@+id/button1"//該控件的內容與給定id控件的內容在一條線上
android:layout_alignBottom //該控件的底部邊緣與給定ID控件的底部邊緣對齊
android:layout_alignLeft //該控件的左邊緣與給定ID控件的左邊緣對齊
android:layout_alignRight //該控件的右邊緣與給定ID控件的右邊緣對齊
android:layout_alignTop //該控件的頂部邊緣與給定ID控件的頂部邊緣對齊
幀佈局FrameLayout
http://www.imooc.com/video/1902
摘自 sioneden
1.Framelayout添加的組件無法制定放置的位置,而且後一組件會覆蓋前一組件。可用於實現顏色漸變的效果,例如設置每個組件的大小漸漸減小。
2.Framelayout沒有gravity屬性,但可以爲需要的組件添加layout_gravity屬性來實現居中的效果
3.也可用於顯示進度條的進度,單獨ProgressBar無法顯示文字
android:foreground//設置前景圖,在所有子視圖的前面
android:background//設置背景
android:keepScreenOn//保持屏幕喚醒
android:foregroundGravity//設置前景圖的位置
絕對佈局AbsoluteLayout
http://www.imooc.com/video/1927
摘自 毒龍
(基本用不到。。。)
1.功能:
絕對佈局控件,又叫座標佈局控件,可以直接子元素的絕對位置(x,y)
2.缺陷:由於手機屏幕尺寸差別比較大,使用絕對定位的適應性會比較差,在屏幕上的適配有缺陷
3.屬性:
android:layout_x
android:layout_y
表格佈局 TableLayout
http://www.imooc.com/video/2062
摘自 qq_孤獨行風_0
android:collapseColumns="0"//隱藏第一列
android:collapseColumns="0,2"//隱藏第一、第三列
android:shrinkColumns="3"//收縮第四列,當第四列的橫向長度超出屏幕時將進行橫向收縮,同時縱向拉伸,可能使內容不超出屏幕。
android:shrinkColumns="1,2"//收縮第二、第三列。。。
android:stretchColumns="3"//第三列橫向拉伸,並佔滿橫向的剩餘空間。
android:stretchColumns="*"//所有列都橫向拉伸,表現爲均衡分配。
//在TableRaw下的子控件當中:
1. android:layout_column: "n"//該控件佔第幾列。例如在該行的第一個子控件添加android:layout_column: "1"//則它會顯示在第二列,而第一列變成空的。
2. android:layout_span:"n"//該控件佔據幾列的寬度。