天天看點

Android 中文API (37) —— AbsoluteLayout

前言

聲明

  歡迎轉載,但請保留文章原始出處:) 

正文

  一、結構

    public class absolutelayout extends viewgroup

    java.lang.object

        android.view.viewgroup

                       android.widget.absolutelayout

    此類不贊成使用。

  二、概述

    

Android 中文API (37) —— AbsoluteLayout

    讓你指定子元素的xy精确坐标的布局。絕對布局缺乏靈活性,在沒有絕對定位的情況下相比其他類型的布局更難維護。

  三、公共方法

         public viewgroup.layoutparams generatelayoutparams (attributeset attrs)

  傳回一組新的基于所支援的屬性集的布局參數

   參數

  attrs        建構layout布局參數的屬性集合

  傳回值

        一個viewgroup.layoutparams的執行個體或者它的一個子類 

  四、受保護方法

         protected viewgroup.layoutparams generatelayoutparams (viewgroup.layoutparams p)

傳回一組合法的受支援的布局參數。當一個viewgroup傳遞一個布局參數沒有通過checklayoutparams(android.view.viewgroup.layoutparams)檢測的視圖時,此方法被調用。此方法會傳回一組新的适合目前viewgroup的布局參數,可能從指定的一組布局參數中複制适當的屬性。

參數

p      被轉換成一組适合目前 viewgroup的布局參數

傳回值

an instance of viewgroup.layoutparams or one of its descendants

一個viewgroup.layoutparams的執行個體或者其中的一個子節點

protected boolean checklayoutparams (viewgroup.layoutparams p)

         (譯者注:檢測是不是absolutelayout.layoutparams的執行個體,見源碼:

  

Android 中文API (37) —— AbsoluteLayout

protected viewgroup.layoutparams generatedefaultlayoutparams ()

傳回一組寬度為wrap_content,高度為wrap_content,坐标是(0,0)的布局參數

一組預設的布局參數或null值

protected void onlayout (boolean changed, int l, int t, int r, int b)

在此視圖view給他的每一個子元素配置設定大小和位置時調用。 派生類可以重寫此方法并且重新安排他們子類的布局。

changed   這是目前視圖view的一個新的大小或位置

l        相對于父節點的左邊位置

t        相對于父節點的頂點位置

r        相對于父節點的右邊位置

b       相對于父節點的底部位置

protected void onmeasure (int widthmeasurespec, int heightmeasurespec)

測量視圖以确定其内容寬度和高度。此方法被measure(int, int)調用。需要被子類重寫以提供對其内容準确高效的測量。

約定:當重寫此方法時,你必須調用setmeasureddimension(int, int)來儲存目前視圖view的寬度和高度。不成功調用此方法将會導緻一個illegalstateexception異常,是由measure(int, int)抛出。是以調用父類的onmeasure(int, int)方法是必須的。

父類的實作是以背景大小為預設大小,除非measurespec(測量細則)允許更大的背景。子類可以重寫onmeasure(int,int)以對其内容提供更佳的尺寸。

如果此方法被重寫,那麼子類的責任是确認測量高度和測量寬度要大于視圖view的最小寬度和最小高度(getsuggestedminimumheight() and getsuggestedminimumwidth()),使用這兩個方法可以取得最小寬度和最小高度。

widthmeasurespec          強加于父節點的橫向空間要求。要求是使用view.measurespec進行編碼

      heightmeasurespec         強加于父節點的縱向空間要求。要求是使用view.measurespec進行編碼。 

  五、補充 

    文章連結

    示例代碼

Android 中文API (37) —— AbsoluteLayout

<absolutelayout

android:id="@+id/absolutelayout01" android:layout_height="wrap_content"

android:layout_width="fill_parent" > 

<textview

android:text="textview01" android:id="@+id/textview01"

android:layout_height="wrap_content" android:layout_y="10px"

android:layout_width="wrap_content" android:layout_x="110px">

</textview>

 </absolutelayout>

Android 中文API (37) —— AbsoluteLayout

   

結束

轉載:http://www.cnblogs.com/over140/archive/2010/11/15/1877401.html

繼續閱讀