android layout_gravity失效的問題


相信對於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的內容不就是他的孩子么,問題解決

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM