1B.布局-下:
1B-01-ViewGroups介紹:
關(guān)于View計劃過的三點:學(xué)會選擇合適的View、如何展示及設(shè)置VIew屬性、如何將多個View進(jìn)行組合并合理布局(VIewGroups)。
-
ViewGroup也是一種View,同樣有高度、寬度、背景色等屬性,不同于TextView和ImageView,內(nèi)容包含的是文字或圖片,ViewGroup內(nèi)包含的是其他各個View。繼而派生出父View和子View的概念。
其實這個也不難理解,從ViewGroup字面意義上,可以理解為是一個容器,里面contain的是(一個或多個):TextView、ImageView等,其他一些基本Views(控件)。
PS:不知道為什么,視頻中一直講的是View這個概念,并沒有出現(xiàn)控件這個概念。雖說從上到下講View圖譜比較正統(tǒng),不過感覺要能提到控件和布局(ViewGroup)的話,中文里面對于零基礎(chǔ)初學(xué)者來說會更好理解一點吧?(個人愚見)
ViewGroups.png -
了解View家族關(guān)系圖譜,漫畫形式真是太棒了_so cute!再腦補(bǔ)下中國式教育會怎么講,反正我估計老師不會給你畫小人兒-。-
paint.png 要求:能夠明確區(qū)分頁面上哪些是ViewGroup、都包含哪些View、誰是父View、誰是子View、各個子View是什么關(guān)系
了解ViewGroup是如何包含View的,以及不同ViewGroup擺放子視圖的規(guī)則,比如:
LinearLayout線性布局,顧名思義子View只能水平或垂直方向成線性排列。
RelativeLayout相對布局,相對指的是相對位置(這個相對位置又可以分為:子視圖與父布局的相對位置;子視圖間的相對位置),比如將子View放到父布局的頂部、底部或中間位置等;或者將ImageView放到父布局左側(cè),將TextView放到父布局的右側(cè)及父布局的頂部。(這樣你就能根據(jù)相對位置,確定TextView基本位于整個布局的右上角位置)。父布局包含子視圖,在XML中是怎么實現(xiàn)的。(注意下各個屬性,具體不細(xì)說了)
1B-02-認(rèn)識線性布局(LinearLayout)
-
有個問題,譯文這塊是干啥的,沒太明白。查了一下貌似是匹配譯文的時間節(jié)點?會不會造成理解困擾要不要去掉?有清楚的來說說?
whatsthis.jpg 了解LinearLayout線性布局XML的寫法,包括ViewGroup命名空間及各個控件屬性的含義和用法。
命名空間,用來指定屬性來自哪個命名空間。結(jié)合ViewGroup和TextView、ImageView畫一個來賓列表布局,過程中留意使用wrap_content和match_parent屬性,學(xué)會使用layout_weight權(quán)重這個屬性,并能自己利用權(quán)重實現(xiàn)布局效果。
stackoverflow 不多說了,程序員必備。
1B-03-聊一聊相對布局(RelativeLayout):
- LinearLayout只能橫向或縱向線性布局,局限性較強(qiáng);RelativeLayout相對布局,則更靈活。
- 子View相對于父View布局的位置,可通過幾個屬性(屬性值為true/false)來控制:
android:layout_alignParentTop
android:layout_alignParentBottom
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_CenterHorizontal
android:layout_CenterVertical
一目了然,無需贅述。
注:若不指定子View任何相對位置,則默認(rèn)在左上角顯示。
另:View間的相對位置,通過android:layout_toLeftOf="相對控件ID"等屬性調(diào)節(jié)。 - 視頻中提到的 "講師批注的代碼的鏈接" 沒貼出,github鏈接如下:
https://gist.github.com/anonymous/e7eb5ceff9dedfc376eb
1B-04-幫助你更好的布局-設(shè)定內(nèi)外邊距
- Padding -- 內(nèi)邊框,指控件內(nèi)容,距離控件的邊距。
- Margin -- 外邊框,指父View和子View之前,子控件距離邊父控件的邊距。
這是兩個屬性,如:
在一個控件中 為 android:padding = "8dp" 或四個方向分別控制(不列出了);
在父布局和子控件中,為 android:layout_margin = "8dp" 或 四方向控制。 - Material Design 建議padding和margin的屬性值,以8dp倍數(shù)為宜。
- 學(xué)會合理使用padding和margin屬性,編寫出更合理美觀的頁面。
PS:又帥又逗的Kunal結(jié)尾,以及我覺得有必要知道視頻最后那位,Google工程師的名字,以表敬意,他叫:KirillO(∩_∩)O



