xml佈局中注意事項

layout_gravity:指的是自己對於自己爸爸容器中的位置;

gravity:指的是設置自己兒子的位置;

因爲RelativeLayout佈局中默認兒子們都是左上角覆蓋排布,所以其中兒子們的layout_gravity屬性無法使用。但是別灰心!!還有layout_centerVertical,_centerHorizontal,_centerInParent三個屬性來設置自己在爸爸容器中的位置。

 

 

在RelativeLayout中,如果光去設置內部空間layout_marginbottom值和layout_marginright值是不會生效的,因爲RelativeLayout默認是左上角排布,只有將其gravity設置爲gravity="bottom",layout_marginbottom纔會生效;將gravity設置爲right,layout_marginright會生效;同時設置的話,兩個屬性值都有用;   或者在子view中設置android:layout_alignParentRight="true"  ,這樣就能讓marginright生效

 

同理LinearLayout也是,只是說對它的佈局而言,默認排布不是左上角,但是錨點是在左上角,所以也是同RelativeLayout一樣,要設置gravity="bottom"right,纔會生效

 

 

 

問題一

xml中需要有一個滿屏的listview,但是也要求有底部導航欄 實現方法

以前的實現方法是,在測試機中先將listview的高度設爲某一特定值,底下剩下的高度可以放下底部導航欄;

這樣的話可能會因爲手機的不同導致ui有差異;

 

 

最近看到一個實現方法:

先將listview的weight設置爲1;

 

那麼留下剩餘的高度就是底部導航欄的高度(底部導航欄一定要設置具體高度數值):

 

因爲如果LinearLayout中的某一控件A的高的權重設爲1,那麼代表着這個控件在其他控件佔好位置之後,剩下的高就全是控件A佔着

實現的效果:

 

 

 

 

 

問題二:

組長給的一個測試:要用線性佈局和相對佈局分別實現下面一行效果,這一行中有三個按鈕,每個相隔10dp。高度不做考慮,即可爲一個具體數值。除了中間按鈕沒有具體寬 爲wrap_content,其他兩個寬都是20dp。

 LinearLayout:(注意中間btn將weight設置爲1,即可佔滿剩餘空間)


 

 

RelativeLayout:(在中間btn未設置具體數值寬度之前,想佔滿整個剩下的空間,需要在左邊控件的右邊torightof 同時在右邊控件的左邊toleftof,這樣才能拉大中間的btn長度)

 

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