Android 中文API (37) —— AbsoluteLayout

前言

  本章内容是 android.widget.AbsoluteLayout,版本为Android 2.2 r1,翻译来自madgoat,欢迎大家访问他的博客:http://madgoat.cn/ ,再次感谢madgoat !期待你一起参与Android API 的中文翻译,联系我over140@gmail.com。 

 

声明

  欢迎转载,但请保留文章原始出处:) 

    博客园:http://www.cnblogs.com/

    Android中文翻译组:http://www.cnblogs.com/over140/  

 

正文

  一、结构

    public class AbsoluteLayout extends ViewGroup

 

    java.lang.Object

      android.view.View

        android.view.ViewGroup

                       android.widget.AbsoluteLayout

 

    此类不赞成使用。

    推荐使用FrameLayoutRelativeLayout或者定制的layout代替。

 

  二、概述

    

    让你指定子元素的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的实例,见源码:

   

 

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学习之旅[6]——以示例程序来展示Android的几种布局方式

                第六讲:用户界面 View(二)

                如何动态改变 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>

   

结束

  声明图片来自文章1 

转载:http://www.cnblogs.com/over140/archive/2010/11/15/1877401.html

时间: 2024-10-25 18:49:34

Android 中文API (37) —— AbsoluteLayout的相关文章

Android 中文 API 文档 (45) —— AbsoluteLayout.LayoutParams

前言 本章内容是 android.widget.AbsoluteLayout.LayoutParams,版本为Android 2.2 r1,翻译来自"绵白糖",再次感谢"绵白糖" !期待你一起参与Android中文API的翻译,联系我over140@gmail.com.    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com/ Android中文翻译组:http://code.taobao.org/project/vi

Android中文API(97)—— ContextMenu

前言 本章内容是android.view.ContextMenu,版本为Android 2.3 r1,翻译来自"Kun",再次感谢"Kun" !期待你一起参与Android 中文API的翻译,联系我over140@gmail.com.    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com/ Android中文翻译组:http://goo.gl/6vJQl   正文 一.结构 public interface Cont

Android 中文 API (100) —— ScrollView

前言 春节即至,谨代表Android中文翻译组全体同仁祝大家身体健康,工作顺利!从第一篇译稿2010年8月27发布至今天2011年1月27整5个月,共发布100篇译文,3个合集,在新的一年里,翻译组仍将坚持Android相关的翻译工作,秉承开源.合作.共享和坚持的信念打持久战,感谢大家的关心和支持! 本章内容是android.widget.ScrollView,版本为Android 2.3 r1,翻译来自"pengyouhong",再次感谢"pengyouhong"

Android 中文API (61) —— ViewSwitcher

前言 本章内容是 android.widget.ViewSwitcher,版本为Android 2.3 r1,翻译来自"ivanlee",再次感谢"ivanlee" !期待你一起参与Android中文API的翻译,联系我over140@gmail.com.   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com/ Android中文翻译组:http://code.taobao.org/project/view/404/

Android 中文API (69) —— BluetoothAdapter[蓝牙]

前言 本章内容是 android.bluetooth.BluetoothAdapter,为Android蓝牙部分的章节翻译.本地蓝牙设备的适配类,所有的蓝牙操作都要通过该类完成.版本为 Android 2.3 r1,翻译来自中山大学的"Android Club SYSU",欢迎访问他们的WIKI:http://www.android-wiki.net,再次感谢"Android Club SYSU"!期待你一起参与Android中文API的翻译,联系我 over140

Android 中文API (70) —— BluetoothDevice[蓝牙]

前言 本章内容是 android.bluetooth.BluetoothDevice,为Android蓝牙部分的章节翻译.蓝牙设备类,代表了蓝牙通讯国足中的远端设备.版本为 Android 2.3 r1,翻译来自中山大学的"Android Club SYSU",欢迎访问他们的WIKI:http://www.android-wiki.net,再次感谢"Android Club SYSU"!期待你一起参与Android中文API的翻译,联系我 over140@gmail

android中文api(80)——Gallery.LayoutParams

前言 本章内容是 android.widget.Gallery.LayoutParams,版本为Android 2.3 r1,翻译来自"我是谁",欢迎大家访问他的博客:http://blog.sina.com.cn/u/1744311365,再次感谢"我是谁" !期待你加入Android 中文API的翻译,联系我over140@gmail.com.   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com/ Android

Android 中文API (46) —— SimpleAdapter

前言 本章内容是 android.widget.SimpleAdapter,版本为Android 2.2 r1,翻译来自"德罗德",欢迎大家访问他的博客:http://sparkrico.javaeye.com/,再次感谢"德罗德" !期待你一起参与Android中文API的翻译,联系我over140@gmail.com.    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com/ Android中文翻译组:http:/

android中文api(79)——Gallery

前言 本章内容是 android.widget.Gallery,版本为Android 2.3 r1,翻译来自"henly.zhang",欢迎大家访问他的博客:http://www.blogjava.net/zlh320321,再次感谢"henly.zhang" !期待你加入Android 中文API的翻译,联系我over140@gmail.com.   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com/ Android

Android 中文 API (93) —— BaseExpandableListAdapter

前言 本章内容是android.widget.BaseExpandableListAdapter,版本为Android 2.3 r1,翻译来自"天涯明月刀",欢迎大家访问他的博客:http://sd6733531.javaeye.com/,再次感谢"天涯明月刀" !期待你一起参与Android 中文API的翻译,联系我over140@gmail.com.    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com/ And