Android中文API(141) —— GridLayout
2011-12-08 09:31
288 查看
前言
本章内容android.widget.GridLayout章节,版本为Android4.0r1(新增),翻译来自:"獨鍆躌踄",欢迎访问他的博客:"http://www.cnblogs.com/mxgsa/",再次感谢"獨鍆躌踄"!期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com/
Android中文翻译组:http://androidbox.sinaapp.com/
GridLayout
译者署名:獨鍆躌踄
译者链接:http://www.cnblogs.com/mxgsa/
版本:Android4.0r1
结构
继承关系
publicclassGridLayoutextendsViewGroup
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.GridLayout
类概述
(转自文章精选1)
该布局把子视图存放在一个矩形网格中。
网格是由被无数虚细线分割成多个单元格的可视区域组成。贯穿整个API的网格线通过网格索引数来指定。一个N列的网格在运行中包含0到N的N+1个索引,不管怎么配置GridLayout网格索引0是固定网格容器的前边距,索引N是固定容器的后边距(考虑后填充)。
行和列的规格
在rowSpec和columnSpec布局参数的定义后,子视图占用一个或者多个连续单元格,每个规范是定义被占用的行或列的设置和子视图在单元格是如何对齐。尽管各个单元格在一个GridLayout中不重叠,GridLayout并没有阻止子视图被定义为占据相同的单元格或者单元格组。然而在这种情况下,也不能保证子视图在布局操作完成后自己不会重叠。
默认单元格分配
如果一个子视图没有指定占据的行和列索引,GridLayout会自动指定单元格位置,包括:方向,行数和列数的属性。
空间(Place)
子视图之间的空间可能会通过使用专用的空间视图的实例,或通过设置leftMargin,topMargin,rightMargin和bottomMargin布局参数后指定。当设置为useDefaultMargins属性,根据当前平台的用户界面风格,子视图周围的默认边距将自动分配。每个被定义的边距可通过分配到相应的布局参数来独立覆盖。默认值通常在不同组成部分会产生一个合理的间距,但在不同平台版本之间可能会改变。
多余的空间分布
GridLayout的多余的空间分布是基于优先级,而不是根据比例。
一个子视图的的伸展程度通过其行和列的组的对其属性推算(这是典型的设置子视图的布局参数gravity属性)。如果对齐是沿着给定的轴定义,那么该组件在这个方向具有灵活性。如果没有对齐,相反组件会缺乏灵活性。
多个组件在同一行或列组被认为平行的。如果组中所有在内的组件是灵活的,那么这个小组是灵活的。位置在一个共同的边界两侧的行和列组,反而认为采取同一系列。如果复合组的一个元素是灵活的,则这个复合组是灵活的。
为了使一列伸展,确保所有的组件,它里面定义一个的gravity属性。为了防止从列伸展,确保列中的组成部分之一没有定义的gravity属性。
灵活性的原则并不能完全的消除歧义,推荐GridLayout中的算法更接近其右侧和底边的行和列。
局限性
GridLayout的不提供支持空间(weight)分配的原则,空间分配界定。在一般情况下,可以配置一个GridLayout多余的空间分布在多个行或列之间的不相同的比例。
一些常见的适用情况,如下:将等量的周围空间中的一个组成部分单元格组;使用居中对齐(或gravity属性)。对于完全控制对或列中多余的空间分布;使用的LinearLayout子视图约束相关的单元格组的组成部分。当使用这些技术,记住,单元格组可能定义重叠。
为GridLayout的使用布局参数的完整描述GridLayout.LayoutParams。
XML属性
常量
字段
公共方法
publicGridLayout.LayoutParams generateLayoutParams(AttributeSet attrs)
在提供的属性集基础上返回一个新的布局参数设置。
参数
attrs创建布局参数的属性
返回值
ViewGroup.LayoutParams实例或者他的派生实例
publicintgetAlignmentMode()
返回对齐方式.
相关XML属性
android:alignmentMode
返回值
对齐方式;
参见
publicintgetColumnCount()
返回当前的列数。通过setColumnCount(int)方法最后一次设置的值,如果没有这样的值被设置,返回在columnSpec定义中的每一个上限的最大值。
相关XML属性
android:columnCount
返回值
当前的列数
参见
publicintgetOrientation()
返回当前方向。
相关XML属性
android:orientation
返回值
publicintgetRowCount()
返回当前的行数。通过setRowCount(int)方法最后一次设置的值,如果没有这样的值被设置,返回在rowSpec定义中的每一个上限的最大值。
相关XML
android:rowCount
返回值
返回当前的行数。
参见
setRowCount(int)
rowSpec
publicbooleangetUseDefaultMargins()
返回是否GridLayout分配时候,没有相应布局参数定义的默认边距。
相关XML属性
android:useDefaultMargins
返回值
如果分配默认的边距返回ture
参见
setUseDefaultMargins(boolean)
publicbooleanisColumnOrderPreserved()
返回是否通过表格索引顺序定制列边界。
相关XML属性
android:columnOrderPreserved
返回值
如果列边界按照索引的顺序显示返回ture,否则返回false
参见
setColumnOrderPreserved(boolean)
publicbooleanisRowOrderPreserved()
返回是否通过表格索引顺序定制行边界
相关XML属性
android:rowOrderPreserved
返回值
如果行边界按照索引顺序显示返回ture,否则返回false
参见
setRowOrderPreserved(boolean)
publicvoidrequestLayout()
当无效的视图布局发生变化时候调用它,将通过视图树进行布局传递。
publicvoidsetAlignmentMode(intalignmentMode)
设置该容器中所有子视图之间的对齐方式
默认的值是ALIGN_MARGINS.
相关XML属性
android:alignmentMode
参数
alignmentModeALIGN_BOUNDS或者ALIGN_MARGINS
参见
ALIGN_BOUNDS
ALIGN_MARGINS
getAlignmentMode()
publicvoidsetColumnCount(intcolumnCount)
列数是仅用于当没有一个布局参数指定时候,生成默认的列/行索引。
相关XML属性
android:columnCount
参数
columnCount列的数量.
参见
getColumnCount()
columnSpec
publicvoidsetColumnOrderPreserved(booleancolumnOrderPreserved)
当此属性为true,GridLayout的是被迫使他们相关的网格指数在视图中以升序顺序放置列的边界。
当此属性是false,GridLayout是放置在任何最适合给定的约束水平列边界的顺序。
此属性的默认值是true。
相关XML属性
android:columnOrderPreserved
参数
columnOrderPreserved用ture是被迫使他们相关的网格指数在视图中以升序顺序放置列的边界。
参见
isColumnOrderPreserved()
publicvoidsetOrientation(intorientation)
Orientation是仅用于当没有一个布局参数指定时候,生成默认的列/行索引
默认的属性值是HORIZONTAL
相关XML属性
android:orientation
参数
orientationHORIZONTAL或者VERTICAL
参见
getOrientation()
publicvoidsetRowCount(introwCount)
RowCount是仅用于当没有一个布局参数指定时候,生成默认的列/行索引
相关XML属性
android:rowCount
参数
rowCount行数
参见
getRowCount()
rowSpec
publicvoidsetRowOrderPreserved(booleanrowOrderPreserved)
当此属性为true,GridLayout是强制他们相关的网格指数在视图中以升序顺序放置行的边界。
当此属性是false,GridLayout是放置在任何最适合给定的约束水平行边界的顺序。
此属性的默认值是true。
相关XML属性
android:rowOrderPreserved
参数
rowOrderPreserved用ture是强制他们相关的网格指数在视图中以升序顺序放置列的边界。
参见
isRowOrderPreserved()
publicvoidsetUseDefaultMargins(booleanuseDefaultMargins)
当设置为true,GridLayout根据子视图的的视觉特征分配在子视图周围的默认边距,每个定义的边距,可独立分配到相应的布局参数覆盖。
如果为false,所有边距的默认值是零。
当设置为true时,考虑设置的alignmentMode属性值ALIGN_BOUNDS。
此属性的默认值是false。
相关XML属性
android:useDefaultMargins
参数
useDefaultMargins使用true分配默认的边距
参见
getUseDefaultMargins()
setAlignmentMode(int)
publicstaticGridLayout.Specspec(intstart,GridLayout.Alignmentalignment)
返回一个Spec,其中:
*spec.span=[start,start+1]
*spec.alignment=alignment
参数
startthe开始索引
alignment对齐方式
publicstaticGridLayout.Specspec(intstart,intsize)
返回一个Spec,其中:
*spec.span=[start,start+size]
参数
start开始位置
size大小
publicstaticGridLayout.Specspec(intstart,intsize,GridLayout.Alignmentalignment)
返回一个Spec,其中:
*spec.span=[start,start+size]
*spec.alignment=alignment
参数
start开始位置
size大小
alignment对齐方式
publicstaticGridLayout.Specspec(intstart)
返回一个Spec,其中:
*spec.span=[start,start+1]
参数
start开始索引
保护方法
protectedGridLayout.LayoutParamsgenerateDefaultLayoutParams()
返回一组默认布局参数。没有设置布局参数执行addview(View)时,这些参数被请求时返回null,并抛出一个异常。
返回值
一组默认布局参数或者null
protectedGridLayout.LayoutParamsgenerateLayoutParams(ViewGroup.LayoutParamsp)
返回一组合法的受支持的布局参数。当一个ViewGroup传递一个布局参数没有通过checkLayoutParams(android.view.ViewGroup.LayoutParams)检测的视图时,此方法被调用。此方法会返回一组新的适合当前ViewGroup的布局参数,可能从指定的一组布局参数中复制适当的属性。
参数
p被转换成一组适合当前ViewGroup的布局参数.
返回值
一个ViewGroup.LayoutParams的实例或者其中的一个子节点
补充
文章精选
Android4.0新增Space及GridLayout初谈
GridLayout.Alignment
译者署名:獨鍆躌踄
译者链接:http://www.cnblogs.com/mxgsa/
版本:Android4.0r1
结构
继承关系
publicstaticabstractclassGridLayout.AlignmentextendsObject
java.lang.Object
android.widget.GridLayout.Alignment
类概述
对齐指定视图应放置在一个单元格组的某个位置以及尺寸大小。
GridLayout.LayoutParams类包含一个rowSpec和columnSpec,其中每个都包含对齐。整体单元格组由这两种沿每个轴单独对齐的方式指定。
GridLayout类定义使用最常见的对齐方式,在总体布局上,左,下,右,居中,基线,填充。
本章内容android.widget.GridLayout章节,版本为Android4.0r1(新增),翻译来自:"獨鍆躌踄",欢迎访问他的博客:"
声明
欢迎转载,但请保留文章原始出处:)
博客园:
Android中文翻译组:
GridLayout
译者署名:獨鍆躌踄
译者链接:
版本:Android4.0r1
结构
继承关系
publicclassGridLayoutextendsViewGroup
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.GridLayout
类概述
(转自文章精选1)
该布局把子视图存放在一个矩形网格中。
网格是由被无数虚细线分割成多个单元格的可视区域组成。贯穿整个API的网格线通过网格索引数来指定。一个N列的网格在运行中包含0到N的N+1个索引,不管怎么配置GridLayout网格索引0是固定网格容器的前边距,索引N是固定容器的后边距(考虑后填充)。
行和列的规格
在rowSpec和columnSpec布局参数的定义后,子视图占用一个或者多个连续单元格,每个规范是定义被占用的行或列的设置和子视图在单元格是如何对齐。尽管各个单元格在一个GridLayout中不重叠,GridLayout并没有阻止子视图被定义为占据相同的单元格或者单元格组。然而在这种情况下,也不能保证子视图在布局操作完成后自己不会重叠。
默认单元格分配
如果一个子视图没有指定占据的行和列索引,GridLayout会自动指定单元格位置,包括:方向,行数和列数的属性。
空间(Place)
子视图之间的空间可能会通过使用专用的空间视图的实例,或通过设置leftMargin,topMargin,rightMargin和bottomMargin布局参数后指定。当设置为useDefaultMargins属性,根据当前平台的用户界面风格,子视图周围的默认边距将自动分配。每个被定义的边距可通过分配到相应的布局参数来独立覆盖。默认值通常在不同组成部分会产生一个合理的间距,但在不同平台版本之间可能会改变。
多余的空间分布
GridLayout的多余的空间分布是基于优先级,而不是根据比例。
一个子视图的的伸展程度通过其行和列的组的对其属性推算(这是典型的设置子视图的布局参数gravity属性)。如果对齐是沿着给定的轴定义,那么该组件在这个方向具有灵活性。如果没有对齐,相反组件会缺乏灵活性。
多个组件在同一行或列组被认为平行的。如果组中所有在内的组件是灵活的,那么这个小组是灵活的。位置在一个共同的边界两侧的行和列组,反而认为采取同一系列。如果复合组的一个元素是灵活的,则这个复合组是灵活的。
为了使一列伸展,确保所有的组件,它里面定义一个的gravity属性。为了防止从列伸展,确保列中的组成部分之一没有定义的gravity属性。
灵活性的原则并不能完全的消除歧义,推荐GridLayout中的算法更接近其右侧和底边的行和列。
局限性
GridLayout的不提供支持空间(weight)分配的原则,空间分配界定。在一般情况下,可以配置一个GridLayout多余的空间分布在多个行或列之间的不相同的比例。
一些常见的适用情况,如下:将等量的周围空间中的一个组成部分单元格组;使用居中对齐(或gravity属性)。对于完全控制对或列中多余的空间分布;使用的LinearLayout子视图约束相关的单元格组的组成部分。当使用这些技术,记住,单元格组可能定义重叠。
为GridLayout的使用布局参数的完整描述GridLayout.LayoutParams。
XML属性
属性名称 | 描述 | |||||||||
android:alignmentMode | 当设置alignMargins,使视图的外边界之间进行校准,定义其边距,当设置alignBounds,使视图的边界之间进行校准,默认设置alignMargins。
| |||||||||
自动定位子视图时创建的最大列数 | ||||||||||
当设置为true,使列边界显示的顺序和列索引的顺序相同。默认是true。 | ||||||||||
Orientation属性在布局时候不被使用,它仅当子视图布局参数没有指定的时候分配行和列,GridLayout在这种情况下和LinearLayout使用方法一样,根据标志的值将所有组件放在单个行或者放在当个列中。在水平情况下,当一行的所有列都填充满时,columnCount属性额外提供创建新行。同样在垂直情况下,rowCount属性有相同的作用,默认是水平的。
| ||||||||||
自动定位子视图时创建的最大行数 | ||||||||||
当设置为true,使行边界显示的顺序和行索引的顺序相同。默认是true。 | ||||||||||
当设置ture,当没有指定视图的布局参数时,告诉GridLayout使用默认的边距。默认值是false。 |
类型 | 属性名称 | 描述 |
int | 这是alignmentMode的常量,当alignmentMode设置成ALIGN_BOUNDS,每个组件之间的原始视图边界边距对齐:即组件的区域通过下面分隔:顶部,左侧,底部和右侧的属性。默认值:0 | |
int | 这是alignmentMode的常量。当alignmentMode设置ALIGN_MARGINS,每个视图的边界向外延伸,根据他们的边距,产生的矩形边距对齐。默认值:1 | |
int | 水平方向。默认值:0 | |
int | 常数用于表示一个不确定的值。该字段可以使用这个值来表示他们的值观尚未确定。同样的方法可以返回这个值,表明没有能实现返回的合适值,该常数的值(目前MIN_VALUE)是为了避免可能不知道其标志的有效值之间的混淆。 | |
int | 垂直方向。默认值:1 |
publicstaticfinal | |
属性名称 | 描述 |
表示一个视图应该和在同一单元格组的其他视图基线对齐,这个常量仅用做rowSpecs对齐 | |
表示一个视图应该和在同一单元格组的其他视图底部边距对齐。 | |
表示一个视图应该和在同一单元格组的其他视图居中对齐,此常数可用于rowSpecs和columnSpecs。 | |
表示视图应该扩大以填充其单元格组。此常数可用于rowSpecs和columnSpecs。 | |
表示一个视图应该和在同一单元格组的其他视图左边距对齐。 | |
表示一个视图应该和在同一单元格组的其他视图右边距对齐。 | |
表示一个视图应该和在同一单元格组的其他视图上边距对齐。 |
public
在提供的属性集基础上返回一个新的布局参数设置。
参数
attrs创建布局参数的属性
返回值
ViewGroup.LayoutParams实例或者他的派生实例
publicintgetAlignmentMode()
返回对齐方式.
相关XML属性
返回值
对齐方式;
或者ALIGN_BOUNDS
ALIGN_MARGINS
参见
ALIGN_BOUNDS
ALIGN_MARGINS
setAlignmentMode(int)
publicintgetColumnCount()
返回当前的列数。通过setColumnCount(int)方法最后一次设置的值,如果没有这样的值被设置,返回在columnSpec定义中的每一个上限的最大值。
相关XML属性
返回值
当前的列数
参见
setColumnCount(int)
columnSpec
publicintgetOrientation()
返回当前方向。
相关XML属性
返回值
或者HORIZONTAL
VERTICAL
参见
setOrientation(int)
publicintgetRowCount()
返回当前的行数。通过setRowCount(int)方法最后一次设置的值,如果没有这样的值被设置,返回在rowSpec定义中的每一个上限的最大值。
相关XML
返回值
返回当前的行数。
参见
publicbooleangetUseDefaultMargins()
返回是否GridLayout分配时候,没有相应布局参数定义的默认边距。
相关XML属性
返回值
如果分配默认的边距返回ture
参见
publicbooleanisColumnOrderPreserved()
返回是否通过表格索引顺序定制列边界。
相关XML属性
android:columnOrderPreserved
返回值
如果列边界按照索引的顺序显示返回ture,否则返回false
参见
setColumnOrderPreserved(boolean)
publicbooleanisRowOrderPreserved()
返回是否通过表格索引顺序定制行边界
相关XML属性
android:rowOrderPreserved
返回值
如果行边界按照索引顺序显示返回ture,否则返回false
参见
setRowOrderPreserved(boolean)
publicvoidrequestLayout()
当无效的视图布局发生变化时候调用它,将通过视图树进行布局传递。
publicvoidsetAlignmentMode(intalignmentMode)
设置该容器中所有子视图之间的对齐方式
默认的值是ALIGN_MARGINS.
相关XML属性
android:alignmentMode
参数
alignmentModeALIGN_BOUNDS或者ALIGN_MARGINS
参见
ALIGN_BOUNDS
ALIGN_MARGINS
getAlignmentMode()
publicvoidsetColumnCount(intcolumnCount)
列数是仅用于当没有一个布局参数指定时候,生成默认的列/行索引。
相关XML属性
android:columnCount
参数
columnCount列的数量.
参见
getColumnCount()
columnSpec
publicvoidsetColumnOrderPreserved(booleancolumnOrderPreserved)
当此属性为true,GridLayout的是被迫使他们相关的网格指数在视图中以升序顺序放置列的边界。
当此属性是false,GridLayout是放置在任何最适合给定的约束水平列边界的顺序。
此属性的默认值是true。
相关XML属性
android:columnOrderPreserved
参数
columnOrderPreserved用ture是被迫使他们相关的网格指数在视图中以升序顺序放置列的边界。
参见
isColumnOrderPreserved()
publicvoidsetOrientation(intorientation)
Orientation是仅用于当没有一个布局参数指定时候,生成默认的列/行索引
默认的属性值是HORIZONTAL
相关XML属性
android:orientation
参数
orientationHORIZONTAL或者VERTICAL
参见
getOrientation()
publicvoidsetRowCount(introwCount)
RowCount是仅用于当没有一个布局参数指定时候,生成默认的列/行索引
相关XML属性
android:rowCount
参数
rowCount行数
参见
getRowCount()
rowSpec
publicvoidsetRowOrderPreserved(booleanrowOrderPreserved)
当此属性为true,GridLayout是强制他们相关的网格指数在视图中以升序顺序放置行的边界。
当此属性是false,GridLayout是放置在任何最适合给定的约束水平行边界的顺序。
此属性的默认值是true。
相关XML属性
android:rowOrderPreserved
参数
rowOrderPreserved用ture是强制他们相关的网格指数在视图中以升序顺序放置列的边界。
参见
isRowOrderPreserved()
publicvoidsetUseDefaultMargins(booleanuseDefaultMargins)
当设置为true,GridLayout根据子视图的的视觉特征分配在子视图周围的默认边距,每个定义的边距,可独立分配到相应的布局参数覆盖。
如果为false,所有边距的默认值是零。
当设置为true时,考虑设置的alignmentMode属性值ALIGN_BOUNDS。
此属性的默认值是false。
相关XML属性
android:useDefaultMargins
参数
useDefaultMargins使用true分配默认的边距
参见
getUseDefaultMargins()
setAlignmentMode(int)
publicstaticGridLayout.Specspec(intstart,GridLayout.Alignmentalignment)
返回一个Spec,其中:
*spec.span=[start,start+1]
*spec.alignment=alignment
参数
startthe开始索引
alignment对齐方式
publicstaticGridLayout.Specspec(intstart,intsize)
返回一个Spec,其中:
*spec.span=[start,start+size]
参数
start开始位置
size大小
publicstaticGridLayout.Specspec(intstart,intsize,GridLayout.Alignmentalignment)
返回一个Spec,其中:
*spec.span=[start,start+size]
*spec.alignment=alignment
参数
start开始位置
size大小
alignment对齐方式
publicstaticGridLayout.Specspec(intstart)
返回一个Spec,其中:
*spec.span=[start,start+1]
参数
start开始索引
保护方法
protectedGridLayout.LayoutParamsgenerateDefaultLayoutParams()
返回一组默认布局参数。没有设置布局参数执行addview(View)时,这些参数被请求时返回null,并抛出一个异常。
返回值
一组默认布局参数或者null
protectedGridLayout.LayoutParamsgenerateLayoutParams(ViewGroup.LayoutParamsp)
返回一组合法的受支持的布局参数。当一个ViewGroup传递一个布局参数没有通过checkLayoutParams(android.view.ViewGroup.LayoutParams)检测的视图时,此方法被调用。此方法会返回一组新的适合当前ViewGroup的布局参数,可能从指定的一组布局参数中复制适当的属性。
参数
p被转换成一组适合当前ViewGroup的布局参数.
返回值
一个ViewGroup.LayoutParams的实例或者其中的一个子节点
补充
文章精选
GridLayout.Alignment
译者署名:獨鍆躌踄
译者链接:
版本:Android4.0r1
结构
继承关系
publicstaticabstractclassGridLayout.AlignmentextendsObject
java.lang.Object
android.widget.GridLayout.Alignment
类概述
对齐指定视图应放置在一个单元格组的某个位置以及尺寸大小。
GridLayout.LayoutParams类包含一个rowSpec和columnSpec,其中每个都包含对齐。整体单元格组由这两种沿每个轴单独对齐的方式指定。
GridLayout类定义使用最常见的对齐方式,在总体布局上,左,下,右,居中,基线,填充。
相关文章推荐
- Android中文API(141) —— GridLayout
- Android2.2 API 中文文档系列(6) —— ImageView
- Android 中文API:Signing Your Applications(为APK签名)
- Android中文API(122) —— AudioRecord
- Android 中文 API (28) —— CheckedTextView
- Android中文API——EditText
- Android 中文API (65) —— BluetoothClass[蓝牙]
- Android 中文 API —— ScrollView
- Android 中文 API (102)—— CursorAdapter
- Android中文API(140) —— DexFile
- Android2.2 API 中文文档系列(1) —— TextView
- android中文api(79)——Gallery
- Android中文API(117)——WrapperListAdapter
- android中文api
- Android 中文 API (26) —— SeekBar
- Android 中文 API (30) —— CompoundButton.OnCheckedChangeListener
- Android中文API(116)——TableLayout
- Android 中文API (37) —— AbsoluteLayout
- Android 中文 API——android.widget合集(中)(50篇)(chm格式)