相信對於Android的初學者來說,大家都曾經被layout里這兩個極其相似的屬性迷惑過。
簡單使用一下搜索工具,我們就不難找到下面這樣的答案:
layout_gravity 表示組件自身在父組件中的位置
gravity 表示組件的子組件在組件中的位置
看似很簡單嘛
為什么這么簡單的道理,總有同學會發現,在“某些時候”,layout_gravity這個屬性不好使了,失去了它應有的作用
問題究竟出在哪里了呢?
當作為父layout的LinearLayout的屬性為android:orientation="vertical" 的時候,android:layout_gravity="?"這里設為橫向的時候才能生效。比如:left,right,center_horizontal等;
當作為父layout的LinearLayout的屬性為android:orientation="horizental" 的時候,android:layout_gravity="?"這里設為縱向的時候才能生效。比如:top,bottom,center_vertical等;
有一個比較特殊的是center,不管是橫向還是縱向的時候,它總有一個方向起作用, 因為LinearLayout他只可能有一個方向,
這nm的,確實讓人蛋疼。其實也有點道理吧,就是LinearLayout橫向的時候,如果有多個孩子,那就不知道把誰放最右了,
有兩個解決方法吧,
(1)用RelativeLayout吧,這個算是費話吧 ,哈哈
(2)在LinearLayout中設置android:gravity這個從官方api的解釋是怎么放置它的內容,LinearLayout的內容不就是他的孩子么,問題解決