線性佈局、相對佈局中的位置屬性小結

相對佈局和線性佈局是用的最多的了,其中有一些屬性是共有的,有的是各自獨有的,有點繞,特此記錄下

 

通用(但是在實際的場景中效果可能有區別)

id   height    width     這些肯定是都有的

 

layout_marginLeft     子控件相對於父控件的左邊距,還有上下右 ,具體的數值 ,比如一個button相對於父控件的距離

paddingLeft                控件內文字距離控件左邊距,  具體的數值  

gravity                         控件內的文本相對於這個控件的位置   

 

LinearLayout特有的

orientation:horizontal和vertical        相對佈局無需設置佈局方向,控件之間都是通過相對位置來排布的

layout_gravity                                控件的左右上下居中位置   這個屬性必須顯示定義父控件的orientation之後才生效,所以只有線性佈局中起作用

layout_weight                                權重   後面詳述

 

RelativeLayout  特有的(每一種只列出一個方向)

layout_alignParentRight            true/false            如果該值爲true,則將該控件的右邊與父控件的右邊對齊,默認置於父窗口最右上,會覆蓋最右上的控件

layout_alignRight          @id/....                               將該控件的右邊緣與給定ID控件的右邊緣對齊,並置於父窗口最上邊,會覆蓋最上邊的控件

layout_centerHorizontal      true/false
layout_centerVertical
layout_centerInParent      

layout_above       @id/              將該控件的底部至於給定ID的控件之上,但不會左對齊,默認置於父窗口最左邊,會覆蓋最左邊的控件 類似的還有below

layout_toLeftOf         @id/....           將該控件的右邊緣和給定ID的控件的左邊緣對齊,默認置於父窗口最上面,會覆蓋最上面的控件

 

關於權重

 權重最基本的用法就是  對線性佈局指定方向(水平或垂直)上剩餘空間分配的一個規則,先把規定的大小佔完,再來按比例分配剩餘空間

特殊情況:

首先計算數值,所有控件加起來後可能超過屏幕大小了,這個時候剩餘值就應該是負的,此時按權重分配,權重大的分得值比較大,但是負的,這個時候加上原來的值,反而變小


 權重有一個很有用的特點,在一些特殊應用場景,比如有兩個控件,一個設置了權重,一個不設置權重,那麼這個設置權重的控件會後加載渲染。      

比如,vertical

我們想給下面的控件設置一個高度,上面的充滿剩餘空間

那麼下面的控件不設置權重,先從底部佔一定高度,上面的控件給一個比較大的權重,就能填滿剩餘的空間。否則,是從上往下加載。

 

<EditText 
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center"
         android:layout_weight="1"
         android:hint="@string/hello_world"/>
     <EditText 
         android:layout_height="wrap_content"
         android:layout_width="fill_parent"
         android:gravity="right"
         android:hint="@string/fruits"/>


這樣子第一個EditText後加載,佔滿剩餘屏幕


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