Android入門學習筆記整理(二)

—–本文內容全部來自於慕課網上的用戶筆記,我只是整理過來—-
使用線性佈局
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_heightlayout_width

Tips:佈局中可以套佈局(例:LinearLayout可以再套LinearLayout佈局或其他佈局)
一個orientationhorizontalLinearLayout中有一個TextView,則設置TextViewgravity屬性爲right是不起作用的。因爲,水平的LinearLayout要從左邊開始依次放置佈局,所以設置TextViewgravity屬性爲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"//該控件佔據幾列的寬度。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章