Android-Layout_weight屬性解析(慕課網筆記)

來自http://www.imooc.com/video/10165
參考:http://www.cnblogs.com/JohnTsai/p/4074643.html
1 baselineAligned(基準線對齊)屬性
這裏寫圖片描述
左邊是水平方向排列的三個textview,我們的預期效果圖應是右下,但實際效果是右上。主要原因在於三個textview的父控件LinearLayout有一個屬性android:baselineAligned默認爲true,因此實際效果中textview裏面的文字的基準線(右上圖中的紅線)是對齊的。
這裏寫圖片描述
紅線就是基線(baseline),就是我們經常寫英文的四條線中的第三條
這裏寫圖片描述
因此,我們只要將父控件中的基準線對齊屬性設置爲false即可。
2 我們將第一個textview的寬度設置爲wrap_content,實際效果圖如下
這裏寫圖片描述
又如我們將這三個textview的寬度都設置爲match_parent,實際效果圖如下
這裏寫圖片描述
在這裏,我們假設父控件LinearLayout的寬度爲480dp,那麼每個textview聲明的控件寬度都是480,即480*3.那麼現在除去聲明的尺寸後剩下的尺寸是480-480*3,即我們要對剩下的尺寸按照比例分配。
這裏寫圖片描述
如上圖所示,textview1的寬度就是:聲明的控件寬度+剩餘尺寸(1/5),textview2和textview3的寬度分別都是:聲明的控件寬度+剩餘尺寸(2/5).因此結論:控件寬度+父控件剩餘寬度*比例
3 現在我只有一個textview,但是我想讓這個textview平分整個父控件的寬度。我們利用LinearLayout的weightsum屬性即可
這裏寫圖片描述
4 在控件屬性中,以layout開頭的屬性表示此view的這個屬性的設置是交給父容器去完成的,不以layout開頭的表示是此view 自身的屬性設置。比如一個TextView有一個gravity=”center”,則表示此textview中的內容是在textview中居中的,如果是layout_gravity=”center”,則表示此textview在父控件中是居中的。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章