天天看点

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

继续阅读