五大布局
一、Linear Layout線性佈局
1.Linear Layout是線性佈局,它包含的子控件將以橫向或豎向排布
2.常用屬性
1)android:orientaion=”vertical”—該屬性決定他子類控件的排布方式
vertical—垂直;
horizontal—水平;
2)android:gravity=”center”—該屬性決定他子類的xy位置
center—水平垂直都居中
center_vertical—垂直居中
center_horizontal—水平居中
right—子類控件位於當前佈局的右邊
left—子類控件位於當前佈局的左邊
bottom—子類控件位於當前佈局的下面
3.子類控件在Linear Layout中的常用屬性
1)android:layout_gravity=”bottom”—指本身在當前父容器的xy的一個位置
2)android:layout_weight=”1”—指本身控件佔當前父容器的一個權重
注:這裏當android:layout_height爲wrap_content時是正比;爲match_parent時是反比
二、Relative Layout相對佈局
1.子類控件在Relative Layout中常用的屬性
android:layout_alignParentLeft=”true”子類控件相對當前父類容器靠左邊
android:layout_alignParentTop=”true”子類控件相對當前父類容器靠上邊
android:layout_marginLeft=”40dp”子類控件相對當前父類容器左邊的距離
android:layout_marginTop=”30dp”子類控件相對當前父類容器上邊的距離
android:layout_centerInParent=”true”子類控件相對當前父類容器即水平居中又垂直居中
android:layout_centerHorlzontal=”true”子類控件相對當前父類容器水平居中
android:layout_centerVertical=”true”子類控件相對當前父類容器垂直居中
顯示效果
此處Button5無法正常顯示,僅在預覽界面時可看到位於Relative Layout左上角,原因不明,求大佬解釋
2.子類控件相對於子類控件的位置屬性
android:layout_below=”@+id/button”該控件位於給定id控件的底部
android:layout_toRightOf=”@+id/button”該控件位於給定id控件的右邊
android:layout_above=”@+id/button”該控件位於給定id控件的上面
android:layout_toLeftOf=”@+id/button”該控件位於給定id控件的左邊
android:layout_alignBaseline=”@+id/button”該控件與給定id控件的內容在一條線上
android:layout_alignBottom=”@+id/button”該控件的底部邊緣與給定id控件的底部邊緣對齊
android:layout_alignLeft=”@+id/button”該控件的左部邊緣與給定id控件的左部邊緣對齊
android:layout_alignRight=”@+id/button”該控件的右部邊緣與給定id控件的右部邊緣對齊
android:layout_alignTop=”@+id/button”該控件的頂部邊緣與給定id控件的頂部邊緣對齊
顯示效果(有多個Button相互疊加)
三、Frame Layout幀佈局
1.所有子元素都不能放在指定的位置,它們全部放在左上角後面的子元素直接覆蓋在前面的子元素之上,將前面的子元素部分或全部遮擋
2.實例
<FrameLayout>
<TextView
android:id="@+id/textView1"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_gravity="center"
android:background="#EE7AE9"
android:text="第一層"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_gravity="center"
android:background="#9B30FF"
android:text="第二層"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp" />
<TextView
android:id="@+id/textView3"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:background="#1C86EE"
android:text="第三層"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp" />
<TextView
android:id="@+id/textView4"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_gravity="center"
android:background="#00EE00"
android:text="第四層"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp" />
</FrameLayout>
顯示效果
四、Absolute Layout絕對佈局
1.Absotute Layout可以直接指定子元素的絕對位置(xy)
2.無法適配屏幕,基本沒用
3.屬性
android:layout_x=”40dip”
android:layout_y=”40dip”
五、Table Layout表格佈局
1.Table Layout每一行爲一個TableRow的對象,也可以是一個View的對象
2.全局屬性
android:collapseColumns=”n”—隱藏從0開始的第n列,多列之間用逗號隔開
android:collapseColumns="1"
android:skinkColumns=”n”—收縮從0開始的第n列,多列之間用逗號隔開,可用“*”代替所有列
android:skinkColumns="3"
android:stretchColumns=”n”—拉伸從0開始的第n列,多列之間用逗號隔開,可用“*”代替所有列
android:stretchColumns="2"
3.局部屬性
android:layout_column=”1”—該控件顯示在第2列
android:layout_span=”2”—該控件佔據第2列