前言
本章内容是android.widget.TableRow,版本为Android 3.0 r1,翻译来自"Snail",欢迎访问它的博客:"http://blog.csdn.net/zuolongsnail",再次感谢"Snail" !期待你一起参与Android API的翻译,联系我over140@gmail.com。
声明
欢迎转载,但请保留文章原始出处:)
TableRow
译者署名:Snail
译者链接:http://blog.csdn.net/zuolongsnail
版本:Android 3.0 r1
类结构
public class TableRow extends LinerLayout
android.widget.TableRow
类概述
按照水平方向来组织子视图的布局。TableRow应该总是作为TableLayout的子视图。如果TableRow的父视图不是TableLayout,那么TableRow将相当于一个水平方向布局的LinearLayout。
在XML配置文件中TableRow的子视图不需要详细指定其layout_width和layout_height属性值。TableRow总是强制将这两个属性分别赋值为MATCH_PARENT和WRAP_CONTENT。
可参考android.widget.TableRow.LayoutParams的布局属性。
内部类
class TableRow.LayoutParams
适用于TableRow的子视图的属性设置
构造函数
public TableRow (Context context)
为给定的上下文创建TableRow布局。
参数
context 应用程序环境
public TableRow (Context context, AttributeSet attrs)
使用指定的属性集合为给定的上下文创建TableRow布局。
参数
context 应用程序环境
attrs 属性集合
公共方法
public TableRow.LayoutParams generateLayoutParams (AttributeSet attrs)
返回一组基于提供的属性集合的布局参数集合。
参数
attrs 用于生成布局参数的属性集
返回值
ViewGroup.LayoutParams或其子类的实例
public View getVirtualChildAt (int i)
返回指定索引的视图。这个方法被重载时应当考虑到其虚拟子视图。参见TableLayout和TableRow的示例代码。
参数
i 子视图的索引
返回值
指定索引的子视图
public int getVirtualChildCount ()
返回虚拟子视图的个数。如果这个布局支持子视图,此数量可能与实际子视图数量不同。 参见TableLayout和TableRow的示例代码。
返回值
虚拟子视图的数量
public void setOnHierarchyChangeListener (ViewGroup.OnHierarchyChangeListener listener)
注册一个回调函数,当从视图中添加或移除子视图时被调用。
参数
listener 层次结构变更时执行的回调函数
受保护方法
protected boolean checkLayoutParams (ViewGroup.LayoutParams p)
(译者注:检测是不是AbsoluteLayout.LayoutParams的实例)
protected LinearLayout.LayoutParams generateDefaultLayoutParams ()
返回宽度为MATCH_PARENT,高度为WRAP_CONTENT且没有跨度的布局参数集合。
返回值
默认布局参数集合或空
protected LinearLayout.LayoutParams generateLayoutParams (ViewGroup.LayoutParams p)
返回一组合法的受支持的布局参数集合。当一个ViewGroup传递一个布局参数没有通过checkLayoutParams(android.view.ViewGroup.LayoutParams)检测的视图时,此方法将被调用。此方法会返回一组新的适合当前ViewGroup的布局参数,可能从指定的一组布局参数集合中复制适当的属性。
参数
p 被转换成一组适合当前ViewGroup的布局参数
返回值
一个ViewGroup.LayoutParams的实例或者其中的一个子节点
protected void onLayout (boolean changed, int l, int t, int r, int b)
在此视图设置其子视图的大小及位置时调用。派生类可以重写此方法并重新为其子类布 局。
参数
changed 这是当前视图的一个新大小或位置
l 相对于父节点的左边位置
t 相对于父节点的顶点位置
r 相对于父节点的右边位置
b 相对于父节点的底部位置
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
测量视图及其内容,以确定其宽度和高度。此方法由measure(int, int)调用。需要被子类重写以提供准确、高效的测量其内容的方法。
约定:当重写此方法时,必须调用setMeasuredDimension(int, int)来保存当前视图的宽度和高度。如果调用不成功将会导致一个IllegalStateException异常,由measure(int, int)抛出。要有效的调用父类的onMeasure(int, int)方法。
基类的实现是以背景大小为默认大小,除非MeasureSpec(测量细则)允许更大的背景。子类应重写onMeasure(int, int)以对其内容提供更合适的大小。
如果此方法被重写,那么子类要确保其测量高度和测量宽度要大于视图的最小宽度和最小高度(getSuggestedMinimumHeight()和getSuggestedMinimumWidth())。
参数
widthMeasureSpec 父视图要求的横向空间大小。该要求由View.MeasureSpec进行编码
heightMeasureSpec 父视图要求的纵向空间大小。该要求由View.MeasureSpec进行编码
补充
推荐教程:
Android Doc官方教程-在TableLayout中使用TableRow
在TableLayout中使用TableRow对象来定义多行
TableRow.LayoutParams
译者署名:madgoat
译者链接:http://madgoat.cn
版本:Android 3.0 r1
类结构
public class TableRow extends LinerLayout
android.view.ViewGroup.LayoutParams
android.view.ViewGroup.MarginLayoutParams
android.widget.LinearLayout.LayoutParams
android.widget.TableRow.LayoutParams
类概述
设置在表格行中使用的布局参数
参见
XML属性
属性名称 | 描述 |
android:layout_column | 该子元素所在的列的索引值。必须是一个整数值,例如“100”。 |
android:layout_span | 定义此子元素跨越多少列。必须>=1。必须是一个整数值,例如“100”。 |
字段
public int column
单元格cell在widget上代表的列索引。
public int span
widget跨越的列数
构造函数
public TableRow.LayoutParams (Context c, AttributeSet attrs)
public TableRow.LayoutParams (int w, int h)
设置子元素的宽度和高度
参数
w 期望高度
h 期望宽度
public TableRow.LayoutParams (int w, int h, float initWeight)
参数
w 期望高度
h 期望宽度
initWeight 期望权重(weight)
public TableRow.LayoutParams ()
设置子元素的宽度为ViewGroup.LayoutParams
,高度参数为WRAP_CONTENT
。
public TableRow.LayoutParams (int column)
设置指定列上的视图的宽度参数为MATCH_PARENT
,高度参数为WRAP_CONTENT
参数
column 视图中列的索引
public TableRow.LayoutParams (ViewGroup.LayoutParams p)
public TableRow.LayoutParams (ViewGroup.MarginLayoutParams source)
公共方法
protected void setBaseAttributes (TypedArray a, int widthAttr, int heightAttr)
从提供的参数中提取出布局参数
参数
a 从布局参数中提取的样式属性
widthAttr 宽度属性的标识符
heightAttr 高度属性的标识符