概念
布局:界面控件擺放位置的確定。
所有的布局都繼承ViewGroup
在Android4.0以前一共有五種布局:
LinearLayout(線性布局)
RelativeLayout(相對布局)
TableLayout(表格布局)
FrameLayout(幀布局)
AbsoulteLayout(絕對布局)
在Android4.0以后新增GridLayout(網(wǎng)格布局)網(wǎng)格布局的經(jīng)典實用場景就是計算器界面
注意:在2.2的操作系統(tǒng)中AbsoulteLayout(絕對布局) 而且TableLayout也逐漸少用
目前推薦使用LinearLayout? RrelativeLayout GridLayout
View共有的屬性(各種布局和控件都具有的屬性,重點)
android:id 設(shè)置控件的id
android:layout_width? 控件的布局寬度
android:layout_height 控件的布局高度
fill_parent match_parent 與父控件一致(2.2以后推薦使用match_parent)
wrap_content? 包裹內(nèi)容
android:background? ? 設(shè)置布局或者控件的背景顏色或者圖片
android:layout_margin 控件與控件之間的間距(外邊距)
android:padding? ? ? 控件內(nèi)容到控件邊緣的距離(內(nèi)邊距)
android:onClick? ? ? 為控件的單擊事件綁定監(jiān)聽器
android:visibility? ? 設(shè)置該控件是否可見(3個值)
LinearLayout(線性布局):控制其中的控件或者組件水平或者垂直排列的布局
android:orientation? 定義布局內(nèi)控件或者組件的排列方式? 可選項:horizontal vertical 默認是水平方向
android:gravity:View中內(nèi)容的對齊方式
如果該屬性定義在布局節(jié)點中或者是定義在ViewGroup中則布局中所有子控件的位置都受到該屬性的控制
如果該屬性定義在TextView Button等非容器類視圖控件中時 用來控制這些控件中內(nèi)容的位置
android:layout_gravity:設(shè)置控件相對于父控件的對齊方式
如果LinearLayout的android:orientation="vertical"的時候 layout_gravity=""這里設(shè)置為橫向的時候才會生效 比如:left right center_horizontal
如果LinearLayout的android:orientation="horizontal"的時候 layout_gravity=""這里設(shè)置為縱向的時候才會生效 比如:top bottom center_vertical
LinearLayout指明了方向后 所有子控件按順序依次排列
weight:LinearLayout特有屬性,指的是對屏幕剩余空間的比例分配
android:layout_weight:子控件在LinearLayout中所占的權(quán)重
RelativeLayout(相對布局):按照控件之間相對位置來進行的布局
A.與父布局之間的對齊關(guān)系
1.android:layout_centerHorizontal? ? 該控件是否位于父控件的水平中心位置
2.android:layout_centerVertical? ? ? 該控件是否位于父控件的垂直中心位置
3.android:layout_centerInParent? ? ? 該控件是否位于父控件的中心位置
4.android:layout_alignParentRight? ? 該控件是否與父控件右對齊
5.android:layout_alignParentLeft? ? ? 該控件是否與父控件左對齊
6.android:layout_alignParentTop? ? ? 該控件是否與父控件頂對齊
7.android:layout_alignParentBottom? ? 該控件是否與父控件底對齊
B.與兄弟控件的位置關(guān)系 該組屬性的值是另一個控件的id
1.android:layout_toRightOf? ? ? ? ? ? 該控件在哪個控件的右邊
2.android:layout_toLeftOf? ? ? ? ? ? 該控件在哪個控件的左邊
3.android:layout_above? ? ? ? ? ? ? ? 該控件在哪個控件的上邊
4.android:layout_below? ? ? ? ? ? ? ? 該控件在哪個控件的下邊
C.與兄弟控件的對齊關(guān)系
1.android:layout_alignRight? ? ? ? 該控件與哪個控件右對齊
2.android:layout_alignLeft? ? ? ? 該控件與哪個控件左對齊
3.android:layout_alignTop? ? ? ? 該控件與哪個控件頂對齊
4.android:layout_alignBottom? ? ? ? 該控件與哪個控件底對齊
5.android:layout_alignStart ? ? ? 該控件的起始端與哪個控件對齊 4.2以后新出的屬性
6.android:layout_alignEnd ? ? ? 該控件的末尾段與哪個控件對齊 4.2以后新出的屬性