Android 中文API (37) —— AbsoluteLayout
2010-11-15 09:41
405 查看
前言
本章内容是 android.widget.AbsoluteLayout,版本为Android 2.2 r1,翻译来自madgoat,欢迎大家访问他的博客:http://madgoat.cn/ ,再次感谢madgoat !期待你一起参与Android API 的中文翻译,联系我over140@gmail.com。
声明
欢迎转载,但请保留文章原始出处:)
农民伯伯:http://over140.blog.51cto.com/
Android中文翻译组:http://www.cnblogs.com/over140/
正文
一、结构
public class AbsoluteLayout extends ViewGroup
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.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的实例,见源码:
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>
本章内容是 android.widget.AbsoluteLayout,版本为Android 2.2 r1,翻译来自madgoat,欢迎大家访问他的博客:http://madgoat.cn/ ,再次感谢madgoat !期待你一起参与Android API 的中文翻译,联系我over140@gmail.com。
声明
欢迎转载,但请保留文章原始出处:)
农民伯伯:http://over140.blog.51cto.com/
Android中文翻译组:http://www.cnblogs.com/over140/
正文
一、结构
public class AbsoluteLayout extends ViewGroup
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.AbsoluteLayout
此类不赞成使用。
推荐使用
FrameLayout,
RelativeLayout或者定制的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>
相关文章推荐
- Android 中文API (37) —— AbsoluteLayout
- Android中文API(142) —— Gravity
- Android 3.0 r1 API中文文档(108) —— ExpandableListAdapter
- Android ListView 中文API
- Android 中文API (61) —— ViewSwitcher
- Android—API中文文档
- Android2.2 API 中文文档系列(5) —— View
- Android 2.2 r1 API 中文文档系列(11) —— RadioButton
- 一个不错的android在线中文API
- Android中文API(114)——TabWidget
- Android 中文 API (22) —— MultiAutoCompleteTextView
- Android中文API(128) —— HandlerThread
- Android中文API —— AudioManager
- Android 中文 API(123) —— AbsListView(一)
- android 中文api (84) —— TrafficStats
- Android 中文 API (29) —— CompoundButton
- Android 中文API (32) —— TimePicker.OnTimeChangedListener
- Android 中文API (33) —— Checkable
- android中文api(85)——HorizontalScrollView
- <转>Android 中文 API (18) —— AbsSeekBar