一、思維導圖
二、重述知識
上面這些是比較“大型”的控件,之后的課程會講到。
這節(jié)就講了五大布局,不過其實常用的就三種:
- LinearLayout
- RelativeLayout
- FrameLayout
三、具體應用場景
不需要細說了,那些控件都要放在布局上,太常用了。
四、擴展理解
1. LinearLayout (線性布局)
- LinearLayout會將它的子控件排列為一行或者一列,默認是水平方向;
- 在XML文件中,用
android:orientation="horizontal"
或者android:orientation="vertical"
這兩個屬性來設置按水平還是垂直排列; - 有“weight”和“weightSum”的概念;
- 要么橫向,要么縱向。
2. RelativeLayout (相對布局)
- RelativeLayout 是通過內部子元素指定它們相對于其他元素或父元素相對位置(通過ID指定)關系來構造用戶界面的布局方式。
- 就是可以相對于“別人”、“空間”或“空間某地”來定位
特別要注意,使用相對布局要避免一種叫"circular dependency"的情況!
大概就是,你RelativeLayout的尺寸跟里面子元素的位置,不要有相互依賴的關系。
例如,你不能把RelativeLayout的高設為WRAP_CONTENT,
然后它里面又有個子元素的位置設為ALIGN_PARENT_BOTTOM。
這就會產生類似下面的情況:
RelativeLayout領導:“活動場地定多大啊?”
Button小弟們:“聽領導的,我坐最后一排就行啦。”
RelativeLayout領導:“我還是看你們的意思定吧。”
……
最后就是“你眼望我眼”,兩邊都不合適。
這個"circular dependency"是我遇到的一個坑,可能會另外寫一篇博文來說說。
另外還要注意,在 version 17和更低版本,RelativeLayout會被一個關于測量尺寸的bug影響,導致被測量子元素值錯誤的情況。
version 18和以上版本已經修復這個問題。大概是這個情況,因為我自己還沒遇過,不展開了,具體看RelativeLayout官網的介紹吧。

相對布局解釋翻譯
還是要自己上機才行,之后再寫另一篇博文貼一下具體位置吧。
margin與padding:
- margin:該控件相對于父組件的邊距,“外”邊距。
- padding:該控件周邊向內擠的邊距,“內”邊距。
3. FrameLayout (幀布局)
- 把控件一層層地進行疊加。
- 沒有任何定位方式,所有控件都會擺放在布局的左上方。
其他
- Android res資源文件夾下的所有文件不能有大寫字符,如果出現(xiàn)大寫字符會導致R.java無法生成;
- xmlns:android="http://schemas.android.com/apk/res/android ",先記住是命名空間就行了,更多的參考《XML namespace in Android》這篇文章吧。
五、核心代碼或操作
這里直接用《第一行代碼》那個實例作為操作吧。
六、相關面試題
待補充。
七、腦內記憶
待補充。